與區

2013-02-06 35 views
4

參數MVC redirecttoaction我們如何能夠通過參數和地區redirecttoaction與區

return RedirectToAction("Index","Coupon1", 
          new {Area = "Admin"}, 
          new {id = currentcoupon.Companyid.id}); 

回答

7
return RedirectToAction("Index", new { id = currentcoupon.Companyid.id, Area="Admin" }); 
+1

這是一個很好的做法,提供一些解釋*爲什麼*您的答案解決了問題,而不是簡單地發佈一段代碼。 –

+0

@四十二感謝您的建議和對投票人的拒絕 –

4

您的參數只需添加到包含您的區域相同的對象。

return RedirectToAction("Index","Coupon1", 
         new {Area = "Admin", id = currentcoupon.Companyid.id}); 
+0

+1爲更快的回答... –

7

我沒有足夠的聲譽添加評論,或做出改變,所以我只是補充這作爲一個答案。明顯的答案沒有充分解釋答案,並會混淆一些人。它假設一個默認的家庭控制器,因爲它沒有明確說明控制器,並且在爲該區域定義另一個控制器時不適用於所有情況。有許多重載重定向,但最簡單的實現既定目標的形式爲:

return RedirectToAction("Action", "Controller", new { id=YourId, Area="AreaName" }); 

對這個職位的其他答案已經正確地改寫原來的代碼,但還沒有引起注意,你需要到在大多數情況下指定控制器。

匿名對象充當MVC路由映射器的包,以映射您可能希望包含在重定向中的所有路由值。

3

如果您需要從沒有區域的區域註冊到控制器的控制重定向,你必須設置面積值清空這樣的:

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

沒有面積=「」你不會是能夠重定向到不同的控制器。

+0

雖然沒有明確提出,但這幫助我 – Allie