什么是ASP.NET MVC中强types的View
ASP.NET MVC中的强types视图是什么?
它是一个从System.Web.Mvc.ViewPage<TModel>
派生的aspx页面。 据说这种观点是强types的TModel
types。 因此,在这个视图中有一个Model属性,它是TModel
types的,允许你直接访问这个模型的属性:
<%= Model.Name %> <%= Model.Age %>
如果你的aspx页面是从System.Web.Mvc.ViewPage
派生的,你需要从ViewData
获取值,这个视图不再知道TModel
types:
<%= (string)ViewData["Name"] %> <%= (int)ViewData["Age"] %>
甚至更糟糕:
<%= ((SomeModelType)ViewData["model"]).Name %>
这样的代码没有编译时间的安全性。
还要注意,强types部分(ASCX)的ViewUserControl<TModel>
对应。
强types视图用于呈现特定types的模型对象,而不是使用一般的ViewData结构。 通过指定数据的types,您可以访问模型类的IntelliSense。
这是一个视图,指定传递给它的对象的types作为其模型 – 所以不是从ViewPage
inheritance的视图,而是从ViewPage<T>
inheritance,其中T
是模型的types。