0

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

解决方案
- CMS.core
---Areas
------Admin
---------Controllers
- Site.Web
---Areas
------Admin
---------控制器

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

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

4

1 回答 1

0

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

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,它会显示此字符串数组表示此路由应在其中查找控制器的任何命名空间。你可以对你的其他区域路线做同样的事情。除了你会提供一个不同的命名空间来查看。

于 2012-08-14T01:25:08.160 回答