视图模式/视图->视图包

ASP.NET MVC(自V1起)就支持一个带控制器和视图的ViewData[]字典,让程序员可以用一种后期绑定的方式从控制器往视图传值。这种方法能用来替代强类型模型类或与之一起使用。下面的代码演示一个常见的例子——一个强类型Product模型通过ViewData[]字典传给视图和两个后期绑定的变量:

在ASP.NET MVC3中,我们引入一个新API,它利用.NET 4中的动态类型支持来设置、返回这些值。它允许你使用标准的“句点”符号来制定需要传输的任何数量的额外变量,而且不需要你定义一个强类型类来实现。

在早前的ASP.NET MVC3的预览版中,我们通过控制器基类中命名为“ViewModel”的动态属性和视图模板中的“View”属性来暴露这个API。 很多人发现这两个不同的名字容易混淆,有些人还说在这个地方使用ViewModel这个名字让人容易混淆——因为你常常在ASP.NET MVC中会创建强类型视图模型(ViewModel)类,而不会不使用这个API。

在RC2中我们在控制器和视图中都暴露了一个同名的动态属性——ViewBag。它是一个动态集合,允许你从控制器传入额外的数据到你的视图模板来帮助生成响应。 下面是一个示例,用来说明我们如何使用它传输一个时间戳信息和一列目录到我们的视图模板:

下面的示例,展示我们的视图模板(强类型,期望返回一个Product类做为它的模型)如何使用我们往Viewbag中传入的信息来生成响应。特别的是,注意我们是如何使用传入动态Viewbag集的一列目录来帮助我们设置Product对象的CategoryID属性的。

上面的控制器/视图绑定然后会生成一个HTML response,如下。

你可能感兴趣的:(html,.net,mvc,asp.net,asp)