2011-03-11 67 views
6

當我嘗試在ASP.NET MVC 3中使用Html.Action作爲與當前控制器不同名稱空間中的控制器時,一個錯誤:如何在ASP.NET MVC中調用@ Html.Action(...)時指定名稱空間

代碼:

@Html.Action("Foo", "Application", new { id = "FG2" }) 

錯誤:

控制器用於路徑 '/ rrmvc/store/checkout'不是 找到或未執行 IController。只有當控制器ApplicationController是從目前的控制器,如StoreControllers.CheckoutController(事實上,他們在完全不同的領域太)不同的命名空間發生

此錯誤。

調用Html.Action時沒有辦法指定一個名稱空間(沒有任何明顯的方式像完全限定名稱空間似乎工作)?

沒有使用lambda方法,而且我在MVC3 RTM中有no luck using Html.RenderAction


編輯:我想這可能與該地區 - 或者這可能是一個完整的紅鯡魚了。我在另一個命名空間中有另一個控制器能夠正常工作 - 所以我認爲這個問題更復雜。如果我想出來,我會回覆一個答案 - 或者只是刪除這個問題,如果不是爲了避免混淆!

回答

6

如果控制器是在不同的區域,你可以嘗試指定該區域名稱:

@Html.Action("Foo", "Application", new { id = "FG2", area = "foo" }) 

,如果你已經在區域內要渲染位於根控制器上的動作你可以試試這個:

@Html.Action("Foo", "Application", new { id = "FG2", area = "" }) 
+0

謝謝你太多了。這是我可以通過多種方式輕鬆解決的3小時問題之一 - 但我無法放過它。這工作得很好。謝謝。所有這些都將我生成的CSS的數字大小打印在頁面的頁腳中! – 2011-03-11 08:41:05

+0

如果有其他人遇到這個問題,這裏是第二個例子,這對我來說很有效 - 'Application'控制器不存在於任何區域 - 並且setting area =「」允許找到它 – 2011-03-11 19:30:41

相關問題