2009-09-08 92 views

回答

208

您是否嘗試過這個?:

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

當我從一個區域返回到主應用程序時,我看不到這項工作。面積= 「」 ?? – MvcCmsJon 2010-10-29 04:29:36

+23

@MvcCMsJon'return RedirectToAction(「action」,「controller」,new {area =「」});'應該這樣做。 – kim3er 2010-12-10 16:45:11

+0

亞我最終想到了這一點,但從來沒有發佈它,哈哈 – MvcCmsJon 2010-12-17 03:31:25

32

你的答案是對我很有幫助。只是想添加如下:

如果你想從一個區域重定向到另一個區域,上面的代碼效果很好。

而且,如果您想從一個區域重定向到區域文件夾中不存在的控制器/視圖(即大多數情況下是您的前端),您可以指定area =「」。

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

正是我在找什麼,謝謝你的回答。 – Jessycormier 2017-02-13 15:12:38

14

我想在這裏提出一個跟進。可以理解,

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

也被

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

代表一個人怎麼鑽到使用相同的符號進一步面積嵌套?具有合適符號的巨大好處是,使用reSharper特別是,如果您需要返回並「重命名」任何控制器,則會適當地處理重構。一旦我爲混音添加了一個額外的區域,並將它們嵌套在一起,前面的記號就不等於了。

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

如果我第一次找到問題,我會不斷更新問題。


好了,我相信答案是沒有什麼壯觀,但最好的辦法如下做到這一點,所以你仍然可以得到某種有效着色W/ReSharper的&智能感知是:

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

至少在這裏您可以使用F12或Ctrl +單擊控制器並指向它,如果您需要進行任何重命名,Resharper將會找到它......但它不會對定義的區域...所以選擇你的戰鬥。

在大多數情況下,我可以完全避免使用重定向...但有時候你必須做你應該做的事情。

相關問題