什么是ASP.NET MVC中强types的View

ASP.NET MVC中的强types视图是什么?

它是一个从System.Web.Mvc.ViewPage<TModel>派生的aspx页面。 据说这种观点是强types的TModeltypes。 因此,在这个视图中有一个Model属性,它是TModeltypes的,允许你直接访问这个模型的属性:

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

如果你的aspx页面是从System.Web.Mvc.ViewPage派生的,你需要从ViewData获取值,这个视图不再知道TModeltypes:

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

甚至更糟糕:

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

这样的代码没有编译时间的安全性。

还要注意,强types部分(ASCX)的ViewUserControl<TModel>对应。

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

这是一个视图,指定传递给它的对象的types作为其模型 – 所以不是从ViewPageinheritance的视图,而是从ViewPage<T>inheritance,其中T是模型的types。