Controller是处理用户请求,并作出响应,响应一般以浏览器页面的形式展现给用户,因此需要HTML代码按照你的设计美观大方的呈现给用户,于是乎用户界面设计UI层View出现了(HTML有文本,控件,图像等)。
方法1、代码可以为:
public ActionResult TestView()
{
return View();
}
在方法处右击,选择添加视图:
方法2、也可以为:
public ActionResult GetTestView()
{
return View("TestView");
}
提倡用方法1,因为在添加视图时候VS会自动将你Action方法名作为视图名字,这样的自动在View下生成一个方法名的文件夹,里面包含你视图名字的cshtml的文件。
A | explian:
1、Why View 会在Test的文件夹下?
MVC强调所有的View页面的配置目录均放在Views目录的子目录中且Views目录下的第一层子目录名字必须为Conrroller的名称,在该例中为Test,同时View的页面文档名也必须为Conrroller的名称,扩展名字可以为cshtml或者aspx,ascx(我仅仅尝试了下cshtml,但其他2个道理应该一样,有兴趣可以尝试下)。
2、View可被多个控制器重用,但前提你需要把这些文件放在Shared文件夹中。
3、在一个Action中可以引用多个View,而一个View可以被多个Action引用。如下代码:
public ActionResult GetView()
{
if(#)
return View("MyView");
else
return View("Index");
}
4、View()方法就可以将页面展现出现,那它肯定是一个封装的接口,查阅一些相关资料后似乎明白一些潜在的逻辑关系,View函数用来创建ViewResult对象渲染一个视图呈现给用户(ViewResult创建了ViewPageActivator对象,选择正确的ViewEngine后,将ViewPageActivator对象传递给ViewEngine的构造函数,ViewEngine创建View类的对象,ViewEngine在调用View的RenderView方法)。
5、ActionResult是一个抽象类,ViewResult只是ActionResult的一个实现,如果你确认你返回的是一个视图(view),你可以直接返回类型为ViewResult。