我已经看过两个"显示模板定制"实例
在1.示例程序员中使用Model.Value,在2.示例中,他使用@ ViewData.Model .-见下文
示例1(日期时间视图:)
@model DateTime?
@Html.TextBox("", Model.HasValue ? Model.Value.ToString("dd/MM/yyyy") : "", new { @class = "ka_" })
示例2:
<a href="@ViewData.Model" target="_blank">@ViewData.Model<a/>
他们之间有什么区别?
选择什么?
答案 0 :(得分:0)
在大多数情况下,您在视图中同时使用它们。该模型为您的主视图指定数据。它是控制器操作创建的数据。 ViewData字典通常由其他组件填充。
我们以产品(视图)模型为例。产品将有价格,描述,sku,并且在大多数情况下是库存指示。
您的产品(查看)模型不包含任何用户信息,网站导航数据的数据。该数据由其他组件放置在ViewData字典中,并且(父)视图可以使用它来呈现整个页面。
有点偏离主题,但在我们公司,我们对允许查看的内容有非常严格的规定。简而言之,它不允许更改/修改任何数据(甚至不是页面标题!)或检索任何数据。我们视图中允许的唯一代码是条件构造和对辅助方法的调用。如果团队中的新开发人员开始使用没有像'SuperSimpleViewEngine(来自NancyFx)或XsltViewEngine这样的'eval'结构的视图引擎,这会有所帮助。 Razor和WebForms让它很容易'欺骗'..