我爲控制器類創建了一些擴展方法,我可以從派生控制器(如家庭控制器)調用它們。但似乎我無法從視角打電話給他們。 有沒有辦法在視圖中調用控制器的擴展方法?從視圖調用控制器擴展方法
回答
它看起來像你試圖調用一個擴展方法作爲控制器操作。你不能那樣做。
您需要做的是創建一個調用擴展方法的操作。這裏有一個簡單的例子:
public ActionResult Foo()
{
this.ExtensionMethod();
return View();
}
public static void ExtensionMethod(this Controller controller)
{
...
}
所以,當你想調用它作爲參數傳遞給了actionlink
,您可以使用Foo
:
@Html.ActionLink("Foo");
謝謝。我的擴展方法返回ActionResult,並獲取與我的控制器操作相同類型的參數,所以我無法做到這一點,因爲我有兩個方法具有相同的簽名,一個擴展方法和另一個控制器操作。這個想法是,我有一個庫,當它包含到一個項目中時,它提供了一些功能來查看/控制器,而不需要開發人員的交互(類似於asp.net中的控件,將其放在頁面中,並駐留在DLL)。做這個的最好方式是什麼? – mans 2012-02-08 09:27:26
啊我想我明白了。這是一個複雜的情況。我的第一個想法是看看你是否真的需要這種設計。改變它到我上面的是正確的方式做到這一點。我的第二個想法就是......你必須深入研究MVC代碼並定製它來查找和調用你的擴展方法。 – Lester 2012-02-08 13:40:34
- 1. 從擴展控制器角度調用父方法
- 2. 從視圖控制器調用視圖方法
- 3. 從視圖調用視圖控制器中的方法
- 4. 調用視圖控制器的方法從子視圖
- 5. 在拆分視圖控制器:調用詳細視圖控制器方法從主視圖控制器
- 6. 未定義方法rails - 從視圖調用控制器方法
- 7. 分段控制子視圖從擴展
- 8. 在Rails調用方法 - 從控制器或從視圖
- 9. ASP.NET MVC 3控制器擴展方法
- 10. 控制擴展器控制擴展量
- 11. 從應用程序委託調用視圖控制器方法
- 12. 調用方法從控制器視圖(ROR)從在視圖控制器使用下面的代碼
- 13. 從視圖訪問控制器方法
- 14. 從視圖中可以調用控制器中的方法嗎?
- 15. 如何從Popover調用主視圖控制器的方法?
- 16. 如何從另一個視圖控制器調用方法
- 17. C#:從視圖文件夾調用控制器方法
- 18. 如何從視圖調用控制器的方法?
- 19. 從視圖控制器類中調用委託方法
- 20. ASP.NET MVC:從視圖調用控制器方法
- 21. MVC4 - 如何從剃刀視圖調用控制器方法
- 22. Rails 3:確保從視圖中調用控制器方法
- 23. iPhone - 從頂部視圖控制器調用方法
- 24. 調用控制器的方法從視圖
- 25. 從另一個視圖控制器調用方法
- 26. iOS:從單獨的視圖控制器調用方法
- 27. 從cakephp1.3中的視圖調用控制器,通過javascript方法
- 28. 從另一個視圖控制器的調用方法iOS StoryBoard
- 29. Extjs4,如何從視圖調用控制器操作方法?
- 30. 如何從ExtJS4控制器調用addRow視圖方法
是否包含在該視圖擴展方法的命名空間? – Lester 2012-02-07 17:16:58
是的,我做到了。我可以訪問該方法,但是當我將它用作動作鏈接的目標時,它不會被調用。 – mans 2012-02-07 17:22:29