区域之间的RedirectToAction?

有没有办法redirect到不同区域的特定行动/控制器?

你试过这个吗?

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

你的回答对我有帮助。 只是想添加下面:

如果你想从一个区域redirect到另一个区域,上面的代码运行良好。

而且,如果你想从一个区域redirect到一个不在区域文件夹中的控制器/视图(即在大多数情况下,你的前端),你可以指定area =“”。

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

我想在这里问一个后续问题。 理解这一点

 return RedirectToAction("action", "area1/controller") 

也是由代表

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

如何使用相同的符号深入到更多的区域嵌套? 具有合适的表示法的巨大好处是,使用reSharper特别是,如果您需要返回“重命名”任何控制器,重构将得到适当的处理。 一旦我添加了一个额外的区域,并将它们嵌套在一起,以前的符号是不相同的。

 return RedirectToAction("action", "area1/area2/controller"); 

如果我第一次find问题,我会保持更新。


好的,所以我相信答案并不是什么了不起的事情,但是最好的办法是让你还能得到一些有效的着色,比如说resharper和intellisense。

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

至less在这里你可以使用F12或者Ctrl +点击控制器,然后直接指向它,如果你需要做任何重命名,Resharper会find它……但是它不会对所定义的区域做任何改变…所以select你的战斗。

在大多数情况下,我可以完全避免使用redirect…但是有时候你必须做你应该做的事情。