【问题标题】:mvc two areas with same name in different projectmvc 不同项目中同名的两个区域
【发布时间】:2012-08-13 22:43:36
【问题描述】:

我有一个具有以下结构的项目:

解决方案
- CMS.core
---地区
------管理员
---------控制器
- 网站.Web
---地区
------管理员
---------控制器

每次我尝试路由到site.web/areas/admin/controllers 下的控制器时,它似乎只查看cms.core/areas/admin/controllers。

这有意义吗?如何将 mvc 路由到位于不同项目中的多个同名区域?

【问题讨论】:

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


    【解决方案1】:

    您需要提供控制器所在的命名空间。例如:

    routes.MapRoute(
        "SiteWebAdminRoute",
        "site.web/areas/{controller}/{action}/{id}", 
        new { Area = "SiteWeb", controller = "Home", action = "Index", id = UrlParameter.Optional },
        new string[] { "Site.Web.Areas.Admin.Controllers" });
    

    ..或类似的东西。请注意底部的字符串数组。如果您查看 Intellisense,它会显示此字符串数组表示此路由应在其中查找控制器的任何命名空间。你可以对你的其他区域路线做同样的事情。除了你会提供一个不同的命名空间来查看。

    【讨论】:

    • 我已尝试提供命名空间,但当我尝试转到 site.web/area/admin/ 区域内的控制器时仍然收到 404...我不知道如何在本站回复中添加代码块...
    • 使用任何额外代码编辑您的原始问题。您能否提供您正在尝试的 URL 以及这两个区域的两条路线?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多