Инфраструктура платформы динамических данных ASP.NET

Visual Studio 2010

Обновлен: Ноябрь 2007

В этом разделе рассматривается структура веб-узла на платформе динамических данных ASP.NET и содержатся сведения о папках и файлах, создаваемых по умолчанию.

В Visual Studio 2008 веб-узел на платформе динамических данных ASP.NET можно создать с использованием шаблона Веб-узел Dynamic Data. Этот шаблон генерирует пользовательские элементы управления, шаблоны страниц и веб-файлы ASP.NET, используемые платформой динамических данных для создания пользовательского интерфейса для работы с данными.

Веб-приложению на платформе динамических данных требуется объект MetaModel и зарегистрированный контекст данных. В качестве контекста данных можно использовать либо класс LINQ-to-SQL (экземпляр класса System.Data.Linq.DataContext), либо класс ADO.NET Entity Framework. Класс контекста данных должен находиться в папке App_Code в корневой папке приложения. Дополнительные сведения см. в разделе Общие сведения о модели динамических данных ASP.NET.

В следующей таблице описываются файлы и папки, созданные на уровне корневого каталога веб-узла на платформе динамических данных ASP.NET.

Файл или папка

Описание

Dynamic Data

Содержит папки для пользовательских элементов управления и для страниц, отображающих данные. Дополнительные сведения о подпапках папки Dynamic Data см. в подразделе Структура папки DynamicData далее в этом разделе.

Default.aspx

Страница ASP.NET, содержащая таблицы и представления, зарегистрированные в экземпляре MetaModel. Имя каждой таблицы выводится в виде элемента управления HyperLink, отображающего содержимое выбранной таблицы.

Global.asax

Содержит метод регистрации экземпляра класса MetaModel и добавления маршрутов в объект RouteCollection. Дополнительные сведения см. в подразделе Конфигурация веб-узлов далее в этом разделе.

Site.css

Каскадная таблица стилей, используемая элементами управления и шаблонами страниц на платформе динамических данных.

Site.master

Главная страница узла. Шаблоны страниц Default.aspx и Dynamic Data используют главную страницу.

Web.config

Файл конфигурации узла. Дополнительные сведения см. в подразделе Конфигурация веб-узлов далее в этом разделе.

По умолчанию веб-узел на платформе динамических данных содержит стандартные файлы для веб-узлов ASP.NET. Однако эти файлы содержат информацию или код, относящийся к платформе динамических данных. В данном разделе содержатся сведения о файлах, используемых платформой динамических данных.

Файл Global.asax

На веб-узле на платформе динамических данных файл Global.asax содержит обработчик события Application_Start, которое порождается при запуске веб-приложения. В обработчике вызывается метод RegisterRoutes. Метод RegisterRoutes содержит экземпляр MetaModel и закомментированный вызов RegisterContext. Чтобы включить операции платформы динамических данных, необходимо обеспечить вызов метода RegisterContext и передать в него действительный контекст данных, например экземпляр DataContext или контекст ADO.NET Entity Framework.

По умолчанию в файле Global.asax на веб-узле на платформе динамических данных вызывается метод Add(Type), чтобы добавить маршрутизацию для страниц List.aspx, Details.aspx, Edit.aspx и Insert.aspx для каждого действия.

Шаблон страницы ListDetails.aspx

Шаблон страницы представляет собой файл ASPX, содержащий элементы управления, которые могут использоваться платформой динамических данных для создания пользовательского интерфейса для отображения и редактирования данных. Маршруты, указанные в файле Global.asax, определяют шаблоны страниц, используемые платформой динамических данных для выполнения действий List, Details, Edit и Insert. Дополнительные сведения см. в разделе Общие сведения о формировании шаблонов и шаблонах страниц платформы динамических данных ASP.NET.

Можно изменить маршрутизацию на шаблоны страниц путем добавления и удаления определений маршрутов в файле Global.asax. (Предопределенные альтернативные маршруты включаются в файл Global.asax в закомментированном виде.) Дополнительные сведения см. в комментариях в файле Global.asax.

Чтобы все таблицы были доступны для просмотра с использованием платформы динамических данных, нужно установить для свойства ScaffoldAllTables объекта ContextConfiguration значение true. Можно также установить для атрибута ScaffoldTableAttribute в разделяемом классе, представляющем отображаемую таблицу, значение true. Атрибут ScaffoldTableAttribute позволяет выборочно отображать таблицы с использованием платформы динамических данных.

Файл Site.master

Файл Site.master представляет главную страницу веб-узла на платформе динамических данных. Он используется всеми шаблонами страниц на платформе динамических данных. Файл Site.master содержит элемент управления System.Web.UI.ScriptManager, у которого свойство EnablePartialRendering имеет значение true. Дополнительные сведения см. в разделе Общие сведения о главных страницах ASP.NET.

  • Примечание   Когда свойство EnablePartialRendering имеет значение true, исключения, вызываемые сервером базы данных, приводят к ошибке времени выполнения в веб-обозревателе. Например, если предпринимается попытка обновить строку, которая содержит ограничение столбцов, определенное в базе данных, и при этом данные обновления нарушают ограничение, в веб-обозревателе возникнет ошибка времени выполнения. Если свойству EnablePartialRendering присвоено значение false, в веб-обозревателе не отображается подробное сообщение об исключении. Вместо этого веб-обозреватель отображает ошибку HTTP 500, которая указывает на возникновение проблемы при обработке на сервере. Дополнительные сведения см. в разделе Добавление клиентских возможностей и возможностей AJAX.

Файл Web.config

Шаблон Visual Studio Веб-узел Dynamic Data генерирует файл Web.config, который помимо элементов, используемых на всех веб-узлах ASP.NET, содержит элементы, относящиеся к платформе динамических данных. В разделе assemblies добавляются следующие DLL.

  • System.Web.Abstractions

  • System.Web.Routing

  • System.ComponentModel.DataAnnotations

  • System.Web.DynamicData

  • System.Data.Linq

Префикс тега "asp:" зарегистрирован для сборки и пространства имен System.Web.DynamicData.

Следующие элементы управления из сборки System.Web.DynamicData используются элементами управления в папке FieldTemplates.

Модуль маршрутизации URL UrlRoutingModule добавляется в элемент httpModules и в раздел system.webServer.

В следующей таблице описываются подпапки в папке DynamicData.

Файл или папка

Описание

Content

По умолчанию содержит папку Images и два элемента управления (GridViewPager.ascx и FilterUserControl.ascx). Папка Images содержит графические файлы, используемые в качестве значков в элементе управления страничного навигатора. FilterUserControl.ascx — пользовательский элемент управления ASP.NET, используемый для фильтрации столбцов внешних ключей. Дополнительные сведения см. в разделе Элементы управления веб-сервера на платформе динамических данных в этом документе.

CustomPages

Папка-контейнер для пользовательских шаблонов страниц. Пользовательские шаблоны страниц используются для переопределения шаблонов страниц, определенных в папке DynamicData\PageTemplates. Например, если контекст данных содержит таблицу с именем Products, можно создать папку DynamicData\CustomPages\Products и добавить в новую папку ASPX-страницы, используемые для отображения данных из таблицы Products. Можно начать с копирования страниц из папки DynamicData\PageTemplates в новую папку DynamicData\CustomPages\Products с последующим изменением шаблонов. Дополнительные сведения о пользовательских шаблонах страниц см. в разделе Практическое руководство. Настройка макета отдельной таблицы путем использования пользовательского шаблона страниц.

FieldTemplates

Содержит пользовательские элементы управления на платформе динамических данных, сопоставляемые типам данных из модели данных. Дополнительные сведения см. в разделах Общие сведения о шаблонах полей платформы динамических данных ASP.NET и Общие сведения о шаблонах полей платформы динамических данных ASP.NET.

PageTemplates

Папка-контейнер для шаблонов страниц, генерирующих пользовательский интерфейс, используемый для просмотра и редактирования данных. Дополнительные сведения см. в разделе Общие сведения о формировании шаблонов и шаблонах страниц платформы динамических данных ASP.NET.

Файл GridViewPager.ascx представляет собой пользовательский элемент управления, производный от WebControl. Он используется для расширения возможностей страничного просмотра при наличии более одной страницы данных в таблице. Пользовательский элемент управления GridViewPager используется в шаблонах страниц List.aspx и ListDetails.aspx.

Файл FilterUserControl.ascx представляет собой пользовательский элемент управления ASP.NET, используемый для фильтрации столбцов с внешними ключами и логическими значениями. Элемент управления FilterUserControl используется в шаблонах страниц List.aspx и ListDetails.aspx. Он инициализируется один раз для каждого внешнего ключа и для каждого столбца логических значений в таблице.

Например, на веб-узле на платформе динамических данных, использующем базу данных AdventureWorksLT, можно запросить страницу, отображающую данные из таблицы Product. Таблица Product содержит столбец внешних ключей ProductCategoryID, который ссылается на таблицу ProductCategory. В платформе динамических данных предполагается, что внешний ключ ProductCategoryID соответствует полю Name в таблице ProductCategory. Затем в поле ProductCategoryID выполняется подстановка поля Name из таблиц ProductCategory.

При отображении таблицы Product из базы данных AdventureWorksLT элемент управления FilterUserControl используется, чтобы создать элемент управления DropDownList для внешнего ключа ProductCategoryID с использованием подставленного имени для поля ProductCategoryID. Можно выбрать категорию продуктов, чтобы отображались только те строки таблицы, которые содержат выбранную категорию продуктов. Например, если выбрана категория Mountain Bikes, отображаются только те строки, в которых в качестве категории продуктов указано "Mountain Bikes".

Элемент управления FilterUserControl также добавляется для каждого столбца логических значений в таблице. Для столбцов логических значений можно выбрать все поля или только те поля, которые имеют значение true или false.

Ограничения элемента управления FilterUserControl Control

Элемент управления FilterUserControl наиболее полезен в столбцах логических значений и столбцах внешних ключей с относительно небольшим числом строк в ссылочной таблице.

Показ: