mat*_*uma 94 asp.net-mvc asp.net-mvc-areas asp.net-mvc-3
我的ASP.NET MVC 3项目遇到以下错误:
找到了多个匹配名为"Home"的控制器的类型.如果为此请求提供服务的路由('Home/{action}/{id}')未指定名称空间来搜索与请求匹配的控制器,则会发生这种情况.如果是这种情况,请通过调用带有'namespaces'参数的'MapRoute'方法的重载来注册此路由.
对'Home'的请求找到了以下匹配的控制器:MyCompany.MyProject.WebMvc.Controllers.HomeController MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController
我的默认控制器文件夹中有一个HomeController,类名为MyCompany.MyProject.WebMvc.Controllers.HomeController.
我的global.asax中的RegisterRoutes方法如下所示:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个名为Company的区域,在该区域的默认控制器文件夹中有一个HomeController,类名为MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController.
CompanyAreaRegistration文件中的RegisterArea方法如下所示:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Company_default",
"Company/{controller}/{action}/{id}",
new { area = "Company", action = "Index", id = UrlParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
这就是我在本文开头突出显示的错误.我正在努力拼凑其他各种帖子的解决方案,没有运气.
是否有可能在默认控制器文件夹中有一个HomeController,然后在每个区域有一个?如果是这样,我是否需要对我的配置文件进行更改(假设我这样做)以使其工作?
任何帮助将非常感激!
Dav*_*tka 165
错误消息包含建议的解决方案:"如果是这种情况,请通过调用带有'namespaces'参数的'MapRoute'方法的重载来注册此路由."
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "MyCompany.MyProject.WebMvc.Controllers"}
);
Run Code Online (Sandbox Code Playgroud)
这将使http:// server /转到你的HomeController的Index动作,我想,这就是你想要的.http:// server/company/home将转到公司区域的HomeController的Index操作,如区域注册中所定义.
小智 29
这是asp.net mvc4方法:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "RegisterNow", id = UrlParameter.Optional },
namespaces: new[] { "YourCompany.Controllers" }
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83856 次 |
| 最近记录: |