我有一个ASP.NET MVC网站和一个名为“Admin”的区域项目。
到目前为止,路由工作正常,但似乎我不能在每个项目中拥有2个具有相同名称的控制器。
我认为以下网址都可以正常使用:
但事实证明,在访问其中时我收到以下错误:
控制器名称“Home”在以下类型之间不明确:
MyProject.Website.Controllers.HomeController
MyProject.Admin.Controllers。 HomeController的
这是正常的,还是我的设置有问题?
BTW,这是我的路由代码:
主要项目:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
Admin.Routes.RegisterRoutes(routes);
routes.MapAreaRoute(
"Main",
"default_route",
"{controller}/{action}/{URLName}",
new { controller = "Home", action = "Index", URLName = "" },
new string[] { "MyProject.Website" }
);
}
区域项目:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapAreaRoute(
"Admin",
"Admin_Default",
"Admin/{controller}/{action}",
new { controller = "Home", action = "Index" },
new string[] { "MyProject.Admin" }
);
}
答案 0 :(得分:5)
阅读this post后发现问题。
我应该在第5个参数中指定'Controllers'命名空间,而不仅仅是项目命名空间。
E.g。
new string[] { "MyProject.Admin.Controllers" }