В примере мы будем работать с классом Customer
, упрощенное представление которого приведено в листинге 5.5.
Листинг 5.5. Класс Customer
public class Customer {
public string CustomerlD {get; set;}
public string CompanyName {get; set;}
public string ContactName {get; set;}
public string ContactTitle {get; set;}
public string Address {get; set;}
public string City {get; set;}
public string Region {get; set;}
public string PostalCode {get; set;}
public string Country {get; set;}
public string Phone {get; set;}
public string Fax {get; set;}
public EntitySet
CustomerCustomerDemos {get; set;}
public EntitySet Orders {get; set;}
}
Данные передаются контроллером HomeController
представлению Index.aspx через коллекцию viewData
в качестве перечислимой коллекции, возвращаемой вспомогательным методом-оберткой над стандартными классами, созданными LINQ для SQL. Код, отвечающий непосредственно за получение данных, не представляет интереса для целей этого примера и не приводится.
public ActionResult Index()
{
NorthwindDatabase db = new NorthwindDatabase();
ViewData["Message"] = "Список сотрудников";
ViewData["Customers"] =
db.GetCustomers(c => c.CompanyName, 5);
return View () ;
}
В результате представлению Index.aspx будет передана коллекция объектов типа Customer, которую требуется представить в виде таблицы. С использованием управляющего кода разметка представления может выглядеть так, как показано в листинге 5.6.
Листинг 5.6. Представление Index.aspx
ContentPlaceHolderID="TitleContent" runat="server">
Домашняя страница
Название компании
|
Контактное лицо
|
|
|
В результате выполнения примера приведенное ранее представление будет отображено в виде, показанном на рис. 5.1.

В тексте листинга 5.6 управляющие конструкции выделены полужирным шрифтом.
Как было отмечено ранее, при создании разметки представления могут быть использованы два типа управляющих конструкций, описанные далее.
Конструкция вида используется для вывода значений в результирующий код HTML-разметки. Тип значения может быть любым, который может быть приведен к строке. Значение будет выведено именно в том месте разметки, в котором оно размещено.
Управляющие инструкции позволяют проверять выполнение некоторых условий для вывода той или иной HTML-разметки (условия) либо многократно повторять фрагменты HTML-разметки (циклы).
Оформляются управляющие конструкции по приведенному далее шаблону.
Произвольный HTML-код, который может
перемежаться другими
управляющими инструкциями
Пример использования цикла приведен в листинге 5.6, применение условий выглядит аналогично:
Добро пожаловать
!
[ ]
[ ]
Вспомогательные методы класса HtmlHelper
, доступного как свойство Html
для представлений и частичных представлений, уже неоднократно встречались в коде ранее. Теперь пришла пора рассмотреть подробнее, какую функциональность они несут и какие задачи решают.
Вспомогательные методы применяются тогда, когда необходимо многократно использовать какую-либо функциональность — от генерации часто применяемой разметки до реализации функциональности элементов управления, таких как кнопки, текстовые поля, гиперссылки и т. д.
Вспомогательным методом может быть любой статический метод, доступный на уровне представления, однако для упрощения общей структуры проектов MVC их принято группировать в рамках класса HtmlHelper
. В табл. 5.1 приведен список основных вспомогательных методов класса HtmlHelper
.
Таблица 5.1. Вспомогательные методы класса HtmlHelper



Большая часть вспомогательных методов реализованы как методы-расширения C# 3.0 для класса HtmlHelper
(статические методы, определенные вне класса HtmlHelper). Такой подход был избран для того, чтобы разработчики легко могли расширять набор вспомогательных методов в собственных классах и не перегружать сам класс HtmlHelper.
Читать дальше
Конец ознакомительного отрывка
Купить книгу