Книга: ASP.NET MVC Framework
Строгая типизация данных представления
Строгая типизация данных представления
Работа с произвольным набором элементов удобна, когда набор данных, отображаемых представлением, меняется в процессе развития проекта. Однако в случаях, когда все данные представления могут быть описаны одним классом, значительно удобнее использовать строго типизированные представления. Для этого коллекция ViewData
предоставляет свойство ViewData.Model
и возможность строгой типизации представления путем наследования самого класса представления от класса ViewPage<T>.
В листинге 5.4 представлена разметка строго типизированного представления.
Листинг 5.4. Представление ViewDataModelStronglyTyped.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<MvcViewsDemo.Models.Customer>" %>
<asp:Content ContentPlaceHolderID="TitleContent" runat="server">
ViewDataModelStronglyTyped
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<h2>
ViewDataModelStronglyTyped
</h2>
<fieldset>
<legend>Fields</legend>
<p>
CompanyName:
<%= Html.Encode(Model.CompanyName) %>
</p>
<p>
ContactName:
<%= Html.Encode(Model.ContactName) %>
</p>
<p>
ContactTitle:
<%= Html.Encode(Model.ContactTitle) %>
</p>
<p>
Address:
<%= Html.Encode(Model.Address) %>
</p>
</fieldset>
</asp:Content>
С точки зрения контроллера, для работы со строго типизированным представлением достаточно присвоить объект свойству ViewData.Model либо передать объект в качестве параметра методу View ().
public ActionResult ViewDataModelStronglyTyped()
{
NorthwindDatabase db = new NorthwindDatabase();
return View(db.GetCustomers().First());
}
В случае нестрого типизированного представления объект также может быть передан в свойство ViewData.Model
, однако это не имеет практической пользы, поскольку на стороне представления все равно придется выполнять приведение типов для свойств этого объекта.
Преимущества строго типизированного представления очевидны — поддержка подсказки IntelliSense при разработке представлений в Visual Studio, возможность генерации заготовок представлений средствами Visual Studio, как это было выполнено для представления, приведенного в листинге 5.4.
В строго типизированном представлении также доступна коллекция объектов viewData
, поэтому даже при использовании строгой типизации количество элементов данных, используемых представлением, может быть модифицировано при развитии проекта.
Некоторые разработчики предпочитают для каждого из представлений создавать отдельный класс данных, с помощью которого типизировать представления. Некоторые же предпочитают использовать строгую типизацию только для того, чтобы передавать объекты в частичные представления, работая с коллекцией viewData
в разметке самих представлений. Выбор определяется предпочтениями разработчиков проекта.
- Резервное копирование базы данных InterBase
- Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Резервное копирование многофайловых баз данных
- Восстановление из резервных копий многофайловых баз данных
- Владелец базы данных
- ЧАСТЬ IV. База данных и ее объекты.
- Перевод базы данных InterBase 6.x на 3-й диалект
- Типы данных для работы с датой и временем
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Обзор основных причин повреждения базы данных
- Ошибки проектирования базы данных
- Профилактика повреждений баз данных InterBase