Asp.net mvc 4 mvc4区域多路线

Asp.net mvc 4 mvc4区域多路线,asp.net-mvc-4,asp.net-mvc-areas,Asp.net Mvc 4,Asp.net Mvc Areas,我在MVC4中有一个网站,在名为“HomeController”的控制器内有一个区域“admin”,在我的项目中还有一个名为“HomeController”的文件夹控制器:当我调用 public ActionResult LogOff() { FormsAuthentication.SignOut(); return RedirectToAction("Index", "Home"); } 我得到一个错误: 找到多个与名为“Home”的控制器匹配的类型。如果为该请求提供服务的路

我在MVC4中有一个网站,在名为“HomeController”的控制器内有一个区域“admin”,在我的项目中还有一个名为“HomeController”的文件夹控制器:当我调用

public ActionResult LogOff()
{
    FormsAuthentication.SignOut();
    return RedirectToAction("Index", "Home");
}
我得到一个错误: 找到多个与名为“Home”的控制器匹配的类型。如果为该请求提供服务的路由(“{controller}/{action}/{id}”)未指定名称空间来搜索与该请求匹配的控制器,则可能发生这种情况。如果是这种情况,请通过调用采用“namespaces”参数的“MapRoute”方法的重载来注册此路由

“主页”请求已找到以下匹配控制器: site1.co.il.Controllers.HomeController
site1.co.il.Areas.Admin.Controllers.HomeController

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

您可以这样指定它:

返回重定向到操作(“操作”,“控制器”,新{area=“area”})

在您的情况下,
区域应为
“admin”

如果要引用根
控制器
,区域应为
“”


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

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

您可以这样指定它:

返回重定向到操作(“操作”,“控制器”,新{area=“area”})

在您的情况下,
区域应为
“admin”

如果要引用根
控制器
,区域应为
“”


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

您是否注册了该区域?注销方法属于哪个控制器?是的。如果我在mvc中使用区域,我可以在不同的区域中使用相同的控制器名称吗?您注册了该区域吗?注销方法属于哪个控制器?是的。如果我在mvc中使用区域,我可以在不同的区域中使用相同的控制器名称吗?