当前位置 > 首页 > Asp.net

ASP.NET MVC3学习心得-----视图和模型

2012-11-30 9:45:00来源:Asp.net

视图

3.1视图的作用

视图的职责是向用户提供用户界面,向它提供对模型的引用后,它会将模型转换为准备提供给用户的格式。

ASP.NET MVC中这个过程由两部分组成:

检查控制器提交的ViewDataDictionary(通过ViewData属性访问),另一部分是将其内容转换为HTML格式

ASP.NET MVC 3开始,视图数据可以通过ViewBag属性访问,该属性是动态的,语法简单,可以访问通过ViewData属性访问的相同数据。封装了ViewData,因此可以用类似访问属性的语法来检索字典中的值,如:

ViewBag.Message等同于ViewData["Message"]

两者的差异:1、只有当要访问的关键字是一个有效的C#标识符时,ViewBag才其作用

如:在ViewBag["Key With Spaces"]中存放一个值,那么将不能使用ViewBag访问改值

2、该动态值不能作为一个参数传递给扩展的方法,因为C#编译器为了选择正确的扩展方法,在编译时必须知道每个参数的类型。

如:@Html.TextBox("name",ViewBag.Name)会编译失败,如果想编译通过有两种方法1、使用ViewData["Name"]2、(stringViewBag.Name

在强类型视图中,ViewDataDictionary拥有一个视图渲染的强类型模型对象,该模型可能代表了实际的域对象,为方便起见,该模型对象可以通过视图的Model属性进行引用。

如:@{ 

        Layout=null

   }

<h1>@ViewBag.Message</h1>

控制器中的控制行为:

Public ActionResult Sample(){

ViewBag.Message="Hello World";

Return View("Sample");

}

注意:该控制器将ViewBag.Message属性设置为一个字符串,然后返回一个名为Sample的视图,该视图将显示传递给ViewBag.Message属性的值

3.2指定视图

默认情况下在控制器中的操作