【发布时间】:2010-09-07 08:34:14
【问题描述】:
我正在构建一个网络应用程序(前端和管理部分)。有 4 种主要记录类型(书籍、汽车、房屋、交易)。用户可以查询和查看每个记录类型的详细信息,管理员也可以查询,还可以编辑和删除。
前端
- 控制器:每种记录类型都有以下操作
//
// 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+" } );
[...]
- views:每个记录类型都有一个文件夹,有两个页面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" } );
[...]
- views:有一个 Admin 文件夹,其中包含所有页面 EditBook.aspx、SearchBook.aspx 但实际上我不喜欢这个。
==
你怎么看?如何避免为每种记录类型添加大量路由?
谢谢!
洛伦佐。
【问题讨论】:
-
为什么不创建一个管理区域?
标签: asp.net-mvc-2