我在MVC4中有一个网站,在控制器中名为“HomeController”的区域为“admin”,在我的项目中还有一个名为“HomeController”的控制器的文件夹控制器:当我打电话给
public ActionResult LogOff()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}
我收到错误: 找到了多个匹配名为“Home”的控制器的类型。如果为此请求提供服务的路由('{controller} / {action} / {id}')未指定名称空间来搜索与请求匹配的控制器,则会发生这种情况。如果是这种情况,请通过调用带有'namespaces'参数的'MapRoute'方法的重载来注册此路由。
'Home'的请求找到了以下匹配的控制器: site1.co.il.Controllers.HomeController site1.co.il.Areas.Admin.Controllers.HomeController
答案 0 :(得分:3)
如果您在不同区域拥有相同的控制器和操作,MVC4无法选择其中一个,除非您指定所需的路径。
您可以这样指定:
return RedirectToAction("action", "controller", new { area = "area" });
在您的情况下,area
应为"admin"
如果您想引用根Controller
,则区域应为""
您也可以尝试引用相应的控制器:"admin\home"
,但我不知道等效的"\home"
是否有效。