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

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

clip_image004

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

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

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

clip_image005

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

clip_image006

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

clip_image007

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值