我正在構建一個Web應用(前端和管理部分)。有4種主要記錄類型(書籍,汽車,房屋,交易)。用戶可以查詢並查看每個記錄類型的詳細信息,管理員可以查詢以及可以編輯和刪除。ASP.NET MVC2:幫助構建管理站點和路由
前端
- 控制器:每個記錄類型具有以下操作
//
// GET: /{recordType}/Index
//
// GET: /{recordType}/Search
- 路由:
個 routes.MapRoute("BookDetail", "Books/{Id}", new { controller = "Books", action = "Details", id = Optional }, new { Id = @"\d+" });
routes.MapRoute("CarDetail", "Cars/{Id}", new { controller = "Cars", action = "Details", id = Optional }, new { Id = @"\d+" });
[...]
- 觀點:存在用於每個記錄類型的具有兩頁的Index.aspx(搜索表單和結果網格)和Details.aspx一個文件夾。
管理員
- 控制器:有一個主要動作的呈現空視圖每個記錄類型具有以下操作
[HttpGet] public virtual ActionResult SearchRecord(RecordTypes? recordType){return View(GetViewNameFromRecordType(recordType));}
//
// GET: /Admin/{recordType}/Create
//
// POST: /Admin/{recordType}/Create
//
// GET: /Admin/{recordType}/Search
//
// POST: /Admin/{recordType}/Search
//
// GET: /Admin/{recordType}/Edit/1
//
// POST: /Admin/{recordType}/Save/1
//
// GET: /Admin/{recordType}/Delete/1
//
// POST: /Admin/{recordType}/Delete/1
- 路由:我我掙扎着,因爲我想反映我的控制器邏輯,但我不知道不想創造大量的路線。
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" }); [...]
- 觀點:有一個與所有頁面EditBook.aspx,SearchBook.aspx的管理文件夾,但其實我不喜歡這樣。
==
你覺得呢?我怎樣才能避免爲每種記錄類型添加大量路由?
謝謝!
洛倫佐。
爲什麼不創建管理區? – ZippyV 2010-09-07 08:52:05