Asp.net mvc 2 ASP.NET MVC2:帮助构建管理站点和路由

Asp.net mvc 2 ASP.NET MVC2:帮助构建管理站点和路由,asp.net-mvc-2,Asp.net Mvc 2,我正在构建一个web应用程序前端和管理部分。有4种主要的记录类型:书籍、汽车、房屋、交易。用户可以进行查询并查看每种记录类型的详细信息,管理员也可以进行查询,此外还可以进行编辑和删除 前端 控制器:每个记录类型都有以下操作 // //获取:/{recordType}/Index // //获取:/{recordType}/Search 路由: routes.MapRouteBookDetail,Books/{Id},new{controller=Books,action=Details,I

我正在构建一个web应用程序前端和管理部分。有4种主要的记录类型:书籍、汽车、房屋、交易。用户可以进行查询并查看每种记录类型的详细信息,管理员也可以进行查询,此外还可以进行编辑和删除

前端

控制器:每个记录类型都有以下操作 // //获取:/{recordType}/Index // //获取:/{recordType}/Search

路由: routes.MapRouteBookDetail,Books/{Id},new{controller=Books,action=Details,Id=Optional},new{Id=@\d+}; routes.maproteCardetail,Cars/{Id},新的{controller=Cars,action=Details,Id=Optional},新的{Id=@\d+}; [...]

视图:每个记录类型都有一个文件夹,其中包含两页Index.aspx搜索表单和结果网格以及Details.aspx。 管理员

控制器:有一个主操作呈现空视图每个记录类型有以下操作 [HttpGet] 公共虚拟操作结果SearchRecordType?记录类型{返回ViewGetViewNameFromRecordTyperecordType;} // //获取:/Admin/{recordType}/Create // //POST:/Admin/{recordType}/Create // //获取:/Admin/{recordType}/Search // //POST:/Admin/{recordType}/Search // //获取:/Admin/{recordType}/Edit/1 // //POST:/Admin/{recordType}/Save/1 // //获取:/Admin/{recordType}/Delete/1 // //POST:/Admin/{recordType}/Delete/1

路由:我很挣扎,因为我想反映我的控制器逻辑,但我不想创建大量的路由。 routes.MapRouteBookDetail,Admin/Books/Save/{Id},new{controller=Books,action=SaveBook,recordtype=Book}; routes.MapRouteBookDetail,Admin/Books/Create/{Id},new{controller=Books,action=CreateBook,recordtype=Book}; [...]

视图:有一个包含所有EditBook.aspx、SearchBook.aspx页面的管理文件夹,但实际上我不喜欢这个。 ==

你觉得怎么样?如何避免为每种记录类型添加大量路由

谢谢


Lorenzo。

您需要在路线定义中包含该动作。以下内容可能会在单路线定义中提供您的所有需求

routes.MapRoute 路线 /Admin/{RecordType}/{Action}/{id}, 新建{controller=Books,action=Search,recordType=Book,id=urlparmeter.Optional} ;

然后,您需要采取行动方法,例如:

公共操作结果编辑记录类型?记录类型,int-id{…} 公共操作结果保存记录类型?记录类型,int-id{…}
etc

为什么不创建一个管理区?