0

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

4

1 回答 1

3

如果你在不同的区域有相同的控制器和动作,MVC4 没有办法选择其中之一,除非你指定哪个是想要的路由。

您可以像这样指定它:

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

在你的情况下area应该是"admin"

如果你想引用 root Controller, area 应该是""

您也可以尝试像这样引用适当的控制器:"admin\home",但我不知道等效的"\home" 方法是否有效。

于 2013-04-01T15:52:38.350 回答