Я остановлюсь на небольшом уточнении в конфигурации шаблона страницы для редактирования выбранной таблицы по определенному действию. Переопределить шаблоны для всех действий по конкретной таблицы можно при помощи route регистрируемого при старте приложения в Global.asax:
routes.Add(new DynamicDataRoute("Products/{action}.aspx") { Table = "Products", ViewName = "ProductList", Model = model });В DynamicDataRoute классе есть public свойство Action, на первый взгляд оно должно ограничивать определенный route по конкретному дейстию, но это не так и чтобы сделать такое ограничение надо по-прежнему использовать ограничения Constraints:
routes.Add(new DynamicDataRoute("Products/{action}.aspx") { Table = "Products", ViewName = "ProductList", Model = model, Constraints = new RouteValueDictionary(new { action = PageAction.List }), });
Комбинация таких выражений позволяет тонко настраивать отображаемые страницы для конкретных моделей таблиц, функциональность которых должна быть изменена, по отношению к стандартным шаблонам.
Собственные шаблоны страниц должны размещаться в папке с именем таблицы дочерней папке ~/DynamicData/CustomPages. Из примера выше это должен быть шаблон ~/DynamicData/CustomPages/Products/ProductList.aspx.
В следующих постах я расскажу о расширении ASP.NET Dynamic Data Filtering и возможности использования Dynamic Data Controls в обычном front-end приложении.
Ссылки по теме:
ASP.NET Dynamic Data
Dynamic Data Model Overview