views:

79

answers:

3

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

A: 

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.

David M
+4  A: 

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

Darin Dimitrov
A: 

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.

jco