What is strongly-typed View in ASP.NET MVC?
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.
In ASP.NET MVC, we can pass the data from the controller action method to a view in many different ways like ViewBag, ViewData, TempData and strongly typed model object. If we pass the data to a View using ViewBag, TempData, or ViewData, then that view becomes a loosely typed view.
The difference is that a dynamic view won't enforce compile-time type-checking (binding to properties etc). You can name and bind any property you want. At run time, if it can't find it in the model, that's when you'll get an error.
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).
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With