What is strongly-typed View in ASP.NET MVC

后端 未结 3 428
忘了有多久
忘了有多久 2020-12-02 18:32

What is strongly-typed View in ASP.NET MVC?

相关标签:
3条回答
  • 2020-12-02 18:49

    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).

    0 讨论(0)
  • 2020-12-02 19:05

    Strongly typed views are used for rendering specific types of model objects, instead of using the general ViewData structure. By specifying the type of data, you get access to IntelliSense for the model class.

    0 讨论(0)
  • 2020-12-02 19:12

    It's a view which specifies the type of the object passed to it as its model - so instead of a view that inherits from ViewPage, it inherits from ViewPage<T> where T is the type of the model.

    0 讨论(0)
提交回复
热议问题