我正在构建一个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