MVC教程六:视图的寻址

1、为何要使用视图html

使用视图之后有两个优势:前端

一、保证页面内容输出和控制器代码的分离。和Code Behind不一样,CodeBehind实现的是物理分离,视图能够实现逻辑上的分离。后端

二、更方便、更直观的输出页面内容的方式。页面上面的逻辑能够很方便的借助Razor语法和HTML混合的方式完成,不像之前的WebFrom须要后端把全部的HTML整合好在进行输出,这样后台和前端想结合起来很困难。浏览器

2、视图的寻址网站

一、视图寻址方法1spa

当使用View方法返回视图的时候,是怎么知道要执行哪一个视图页面呢?一般的作法就是经过视图的方法传递视图的完整路径,或者指定视图的名称,指定视图路径很好理解!以下面的代码所示:code

public ActionResult Index()
{
      return View();
}

 

默认状况下,启动的时候会打开Index视图,将代码修改以下:htm

public ActionResult Index()
{
      // 指定视图的路径
      return View("~/Views/Home/About.cshtml");
}

 

运行结果:对象

从运行结果中能够看出,若是指定了视图的路径,那么运行的时候打开的就会是指定路径的视图。blog

那么指定视图名称(默认代码就是使用的指定视图名称的方法)的时候是如何知道视图放在什么地方呢?难道要遍历整个网站的路径吗?固然不会是这样的,以下图所示,它有一个寻址范围的。

指定视图名称寻找视图的步骤:

一、首先查找相应的Controller名称对应的视图文件夹,若是找不到,在查找Shared文件夹。

二、先查找cshtml文件。

三、这是一种约定的规则。

二、视图寻址方法2

3、编写视图

前面已经接触了视图的编写,从原理上讲ASP.NET针对请求的处理最终体如今对目标Action方法的执行,并就处理的结果对请求予以响应,而ActionResult为咱们提供了一种响应请求的快捷方式。ASP.NET MVC定义了一系列原生的ActionResult类型,如:EmptyResult、ContentResult等,它们或者帮助咱们将指定的内容按照相应的媒体类型响应给客户端,或者回复一个指定状态码的响应,又或者是实现客户端的重定向。

ViewResult是重要也是最为经常使用的ActionResult,咱们能够利用它将指定的View呈如今客户端的浏览器上。针对ViewResult的View呈现最终是利用View引擎来实现的。View引擎中的View实现了IView接口,对应着某个View文件,而核心组件ViewEngine实现针对View的获取、激活、呈现以及最终的释放。

View文件最终编译生成的WebViewPage<TModel>是System.Web.Mvc.WebViewPage的子类,然后者继承自WebPageBase。咱们在定义View的时侯使用的三个帮助对象(HtmlHelper、UrlHelper和AjaxHelper)所对应的属性就定义在这里,他们经过InitHelpers方法进行初始化。

咱们在定义View的时侯能够经过只读属性Model、ViewData、ViewBag和TempData获得在Controller中设置的状态数据,也能够经过调用SetViewData设置ViewData,ViewContext表示View当前上下文。以下图所示:

4、HTML辅助方法

下图中列出了一些常见的HTML辅助方法:

相关文章
相关标签/搜索