Я создаю веб-приложение (интерфейс и раздел администратора). Существует 4 основных типа записей (книги, машины, дома, предложения). Пользователь может выполнить запрос и просмотреть детали каждого типа записи, администратор также может выполнить запрос и, кроме того, может редактировать и удалять.
Передняя часть
- контроллер: каждый тип записи имеет следующие действия
//<br />
// GET: /{recordType}/Index<br />
//<br />
// GET: /{recordType}/Search<br />
routes.MapRoute("BookDetail", "Books/{Id}", new { controller = "Books", action = "Details", id = Optional }, new { Id = @"\d+" } );<br>
routes.MapRoute("CarDetail", "Cars/{Id}", new { controller = "Cars", action = "Details", id = Optional }, new { Id = @"\d+" } );<br>
[...]
- просмотров: есть папка для каждого типа записей с двумя страницами Index.aspx (форма поиска и таблица результатов) и Details.aspx.
Администратор
- контроллер: есть основное действие, которое рендерит пустой вид, каждый тип записи имеет следующие действия
[HttpGet]
public virtual ActionResult SearchRecord(RecordTypes? recordType){return View(GetViewNameFromRecordType(recordType));}<br />
//<br />
// GET: /Admin/{recordType}/Create<br />
//<br />
// POST: /Admin/{recordType}/Create<br />
//<br />
// GET: /Admin/{recordType}/Search<br />
//<br />
// POST: /Admin/{recordType}/Search<br />
//<br />
// GET: /Admin/{recordType}/Edit/1<br />
//<br />
// POST: /Admin/{recordType}/Save/1<br />
//<br />
// GET: /Admin/{recordType}/Delete/1<br />
//<br />
// POST: /Admin/{recordType}/Delete/1<br />
- маршрутизация: я борюсь, потому что я хотел бы отразить логику моего контроллера, но я не хочу создавать огромное количество маршрутов.
routes.MapRoute("BookDetail", "Admin/Books/Save/{Id}", new { controller = "Books", action = "SaveBook", recordtype = "Book" } );
routes.MapRoute("BookDetail", "Admin/Books/Create/{Id}", new { controller = "Books", action = "CreateBook", recordtype = "Book" } );
[...]
- просмотров: есть папка Admin со всеми страницами EditBook.aspx, SearchBook.aspx, но на самом деле мне это не нравится.
==
Что ты думаешь? Как можно избежать добавления большого количества маршрутов для каждого типа записи?
Спасибо!
Lorenzo.