如何从MVC3中退出区域控制器?

3

我的URL路由在“Areas”文件夹内正常工作,这意味着我可以从一个控制器或视图进入到另一个控制器或视图,但是如何从该区域控制器转到父控制器?

例如:如果我在我的控制器中添加此行,则会退出区域控制器并正常工作。

//Homecontroller.cs inside Controllers folder
return RedirectToAction("../../Home");  

什么是正确的编码方式来连接父控制器?
1个回答

8
您需要明确指定区域。区域是路由参数,就像控制器和操作一样。如果在生成URL时(即调用RedirectToAction时)没有明确指定它,则会假定当前值。这是当前控制器的区域。
例如:
return RedirectToAction( "Index", "Home", new {Area = "Test"} );

要返回到顶级控制器,请按如下方式清除区域:

清除区域的代码如下:

return RedirectToAction( "Index", "Home", new {Area = ""} );

我不想进入任何区域,只需从该区域退出并转到父项目控制器。 - manny
1
然后设置 Area="",这应该会将您返回到顶层。 - Marnix van Valen
不,即使这样也不行,我们不应该在任何地方考虑面积。 - manny
没问题,现在用你的答案它可以工作了,我在我的路由中稍微清理了一下,现在它完美地运行。 - manny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接