It is an aspx page that derives from System.Web.Mvc.ViewPage<TModel>
. It is said that this view is strongly typed to the type TModel
. As a consequence to this there's a Model property inside this view which is of type TModel
and allows you to directly access properties of the model like this:
<%= Model.Name %>
<%= Model.Age %>
where as if your aspx page derived from System.Web.Mvc.ViewPage
you would need to pull values from ViewData
the view no longer knows about the TModel
type:
<%= (string)ViewData["Name"] %>
<%= (int)ViewData["Age"] %>
or even worse:
<%= ((SomeModelType)ViewData["model"]).Name %>
and there's no compile time safety in such code.
Notice also that there's the ViewUserControl<TModel>
counterpart for strongly typed partials (ASCX).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…