【发布时间】:2010-11-20 04:31:58
【问题描述】:
在 asp.net MVC2 中设置具有多个接口的项目的最佳实践是什么?我正在开始一个项目,我们需要一个典型的安排,例如:
example.com/ - 最终用户界面
example.com/Admin/ - 网站管理
该站点将涉及到足够多的内容,以至于仅在 HomeController 中拥有所有用户逻辑和在 AdminController 中拥有所有管理逻辑并不是一个真正的选择。我已经阅读了有关使用多个 Route 定义的信息,但以下内容似乎无法正常工作:
routes.MapRoute(
"Admin", // Route name
"Admin/{controller}/{action}/{id}", // URL with parameters
new { controller = "Admin", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
它会导致主页上的所有链接指向 example.com/Admin/local-part 而不是 example.com/local-part。
我想避免为每个管理控制器指定不同的 MapRoute(每次从映射中省略 {controller})。
我还阅读了有关在项目中设置不同区域的信息,但这似乎太涉及到该项目的范围。
最后,我还读到您可以对 MapRoutes 施加约束,但是这部分的文档让我感到困惑。我有什么明显的遗漏吗?如果做不到这一点,是否有任何我应该记住的 asp.net 结构的最佳实践?
【问题讨论】:
标签: c# asp.net-mvc-2