什么是ASP.NET MVC中的强类型视图

时间:2010-05-24 11:20:50

标签: asp.net-mvc view

ASP.NET MVC中什么是强类型视图?

3 个答案:

答案 0 :(得分:34)

这是一个派生自System.Web.Mvc.ViewPage<TModel>的aspx页面。据说此视图强类型为TModel类型。因此,此视图中有Model属性,类型为TModel,允许您直接访问模型的属性,如下所示:

<%= Model.Name %>
<%= Model.Age %>

如果您的aspx页面派生自System.Web.Mvc.ViewPage,您需要从ViewData中提取值,该视图将不再了解TModel类型:

<%= (string)ViewData["Name"] %>
<%= (int)ViewData["Age"] %>

甚至更糟:

<%= ((SomeModelType)ViewData["model"]).Name %>

并且此类代码中没有编译时安全性。

另请注意,强类型部分(ASCX)的ViewUserControl<TModel>对应部分。

答案 1 :(得分:11)

强类型视图用于呈现特定类型的模型对象,而不是使用常规ViewData结构。通过指定数据类型,您可以访问模型类的IntelliSense。

答案 2 :(得分:3)

这是一个视图,它指定传递给它的对象的类型作为其模型 - 因此它不是从ViewPage继承的视图,而是从ViewPage<T>继承,其中T是模型的类型。