【问题标题】:MVC3 Routing areas to root using namespaceMVC3 使用命名空间将区域路由到根目录
【发布时间】:2013-01-25 06:34:40
【问题描述】:

我有一个包含两个领域的项目。这两个区域允许不共享任何控制器或视图的不同成员类型(例如学生和教师)。但是,它们都共享联系人和支持页面等的根控制器。

目前我使用命名空间在每个区域内路由。

我想做这样的事情,但优先考虑命名空间,这样它们就不会有冲突的控制器:

context.MapRoute(
    "Student_Default",
    "{controller}/{action}/{id}",
    new { area = "Student", controller = "Home", action = "Index", id = UrlParameter.Optional },
    new { RoleConstraint = new AuthenticationConstraint() },
    new[] { "Test.Web.Areas.Student.Controllers", "Test.Web.Controllers" }
);

或者,我尝试使用“UseNamespaceFallback”,但导致在所有我不想要的区域中进行搜索。

我没有尝试过的其他方法是仅在用户登录时注册该区域。这是一种可以接受的方法吗?

我也可以只映射每个页面,但可能会有很多,而且每个页面都会很混乱。

所以问题是如何使根控制器对两个区域都可用,而这些区域彼此不可用?如果需要更多信息,请告诉我,我很乐意提供更多关于我正在尝试做的事情。

【问题讨论】:

    标签: asp.net-mvc-3 routing namespaces areas


    【解决方案1】:

    在周末考虑了这一点后,我决定使用“UseNamespaceFallback”。我还实现了用户角色来管理每个用户可以访问的区域。我认为这是一种更好的方法,因为我读过一条建议不要使用命名空间作为身份验证方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 2012-02-19
      • 1970-01-01
      • 2021-02-08
      • 2017-10-09
      相关资源
      最近更新 更多