mvc4区域有多条路线

时间:2013-03-01 13:46:16

标签: asp.net-mvc-4 asp.net-mvc-areas

我在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

1 个答案:

答案 0 :(得分:3)

如果您在不同区域拥有相同的控制器和操作,MVC4无法选择其中一个,除非您指定所需的路径。

您可以这样指定:

return RedirectToAction("action", "controller", new { area = "area" });

在您的情况下,area应为"admin"

如果您想引用根Controller,则区域应为""

您也可以尝试引用相应的控制器:"admin\home",但我不知道等效的"\home"是否有效。