[译]ASP.NET MVC动手实验1-2:创建ASP.NET MVC应用

任务4 – 理解视图

在 MVC Web 应用的常规工作流程中, 控制器行为方法处理传入的 Web 请求。这些行为方法使用传入参数值来执行应用代码, 然后取得或者更新数据库中的数据模型对象。然后她们再选择一个视图进行渲染以响应浏览器。

  1. 在 MVC 应用中视图是负责呈现用户界面的组件。视图被特别设计为呈现逻辑的封装。它们不应包含任何应用逻辑或者数据库查询代码。视图在控制器调用时渲染视图的方法时,使用控制器提供的视图数据类来渲染恰当的用户界面。
  2. 视图使用 .aspx、.ascx 以及 .master 以及其它文件。其它文件一般是与渲染视图相关的文件。 Views 文件夹为每个控制器包含以控制器的前缀来命名的目录。
  3. 打开 Home 控制器的 Index 视图:在 解决方案浏览器 中, 双击 ViewsHome 目录下的 Index.aspx 文件。 提示:视图模板默认不包含后台代码文件。这样主要是为了强化 MVC 应用中 视图被设计为纯粹用于渲染而不包含任何与呈现无关的代码这一概念。
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
</asp:Content>

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%= Html.Encode(ViewData["Message"]) %></h2>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
    </p>
</asp:Content>
[][5] 提示:Html 对象是 HtmlHelper 类的实例,用于为生成 HTML 标记提供常见的实用的方法。Encode 方法将 HTML 编码为具体的字符串。 通过这种方式, 视图对通过 **ViewData** 字典从控制器中获得的 **Message** 值进行编码输出。 在你的视图中,你可以以后绑定的方式或者强类型的方式访问 ViewData 数据。如果你的视图继承 **ViewPage**, **ViewData** 属性就是后绑定的字典类型。 如果你的视图集成自 **ViewPage<T>** 泛型, 其中 **T** 代表控制器传递给视图的 **ViewData** 的对象数据类型, **ViewData** 属性在这里就是与你的控制器传递的数据类型相同的强类型。