当前位置 > 首页 > 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指定视图

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


  • Integration of JQuery DatePicker on ASP.NET Website – JS Validation Script (part 2)

    2010-7-21 11:58:00

    In part 1 I’ve shown the way to integrate the KeithWood’s JQuery DatePicker on an ASP.NET websi

  • .net动态加载程序集和影子复制(Dynamic Load Assembly and Shadow Copy)

    2009-10-13 14:18:00

    摘要: 最近一值在学习.net动态加载程序集方面的内容。事情的起因是我有一个.net的服务程序想实现类似ASP.NET中更新bin文件夹下DLL无需重启IIS的功能,这个功能有个正式的名称叫影子复制

  • 走火入魔实现基于ASP.NET MVC快速开发平台

    2010-10-13 22:05:00

    作者: 麒麟 发表于 2010-10-13 20:43 原文链接 阅读: 330 评论: 9 最近一个月,自己利用业余时间开发一个基于ASP.NET MVC快速开发平台。现在勉强算个原型

  • 【译文】需求模式--第一部分 第一章 第一节

    2009-12-28 12:00:00

    阅读: 392 评论: 0 作者: Abbott zhao 发表于 2009-12-27 21:53 原文链接 第一部分 准备 章节列表 第一章 “速

  • 如此自动绑定数据到WebUI

    2007-4-9 16:59:00

    把数据绑定到控件,不知道大家用哪种方法?   很早之前,我一般在aspx中放置控件,在后台的代码中用代码直接给相应的控件设置属性的值。这样的方法优点是灵活,可以依据业务逻辑,灵活的设置控件的Text

  • Improving the Netduino Knight Rider effect with a shift register

    2010-11-28 19:15:00

    In my last Netduino post , I showed how to create a simple Knight Rider effect. One of the problem

  • .NET 4.0里异常处理的新机制

    2010-9-5 19:46:00

    作者: donjuan 发表于 2010-09-05 18:12 原文链接 阅读: 313 评论: 3 前几天,有一个朋友问我为什么在 .NET 里不能捕捉( catch )到一些异常

  • 如何学习面向对象程序设计(OOPD)

    2010-7-11 16:36:00

    作者: 倪大虾 发表于 2010-07-11 15:00 原文链接 阅读: 219 评论: 1   最近参与了一个面向对象程序设计(以下简称OOPD)的培训,这两天才有空整理一下思路,现在

  • 电子商务之表示层分析(九)

    2009-11-27 18:08:00

    阅读: 204 评论: 0 作者: 小风(wind) 发表于 2009-11-27 16:25 原文链接   这里我主要是想分析下这里怎么实现多个数据在页面之间传递。这里要运用到是因为在

  • IP to Integer

    2010-2-2 7:22:00

    有时候我们要判断某个IP是否在某个段内,如何实现呢? 一个简单办法就是把IP转换成Integer,然后判断整数是否在某个范围内就可以实现这个判断。 转换的算法如下: 比如我们要转换的IP