コントローラクラスの拡張メソッドをいくつか作成しました。これは、派生コントローラ(ホームコントローラなど)から呼び出すことができます。しかし、私はそれらを視野から呼び出すことはできないようです。 ビュー内でコントローラの拡張メソッドを呼び出す方法はありますか?ビューからコントローラ拡張メソッドを呼び出す
答えて
拡張メソッドをコントローラアクションとして呼び出そうとしているようです。あなたはそれをすることはできません。
代わりに行う必要があるのは、拡張メソッドを呼び出すアクションを作成することです。ここでは簡単な例です:
public ActionResult Foo()
{
this.ExtensionMethod();
return View();
}
public static void ExtensionMethod(this Controller controller)
{
...
}
あなたはactionlink
にパラメータとして、それを呼び出したいときに、あなたがFoo
を使用することができます。
@Html.ActionLink("Foo");
ありがとうございます。私の拡張メソッドはActionResultを返し、私のコントローラアクションが取得しているのと同じタイプのパラメータを取得するので、同じ署名、拡張メソッド、および他のコントローラアクションを持つ2つのメソッドを持つことができません。このアイデアは、プロジェクトにインクルードするときに、開発者とのやりとりを必要とせずに、/コントローラを表示するための機能をいくつか提供するライブラリがあるということです(asp.netのコントロールと似ています。 dll)。これを行う最善の方法は何ですか? – mans
ああ、私は理解していると思います。それは複雑なシナリオです。私の最初の考えは、本当にそのデザインが必要かどうかを見極めることです。私が上に持っているものに変更することは、これを行う正しい方法です。私の2番目の考えは、MVCコードを深く見て、拡張メソッドを見つけて呼び出すようにカスタマイズする必要があります。 – Lester
- 1. ビュー内からコントローラのメソッドを呼び出すCakePHP
- 2. ビューからコントローラのメソッドを呼び出す方法は?
- 3. コントローラからメソッドを呼び出す
- 4. Codeigniter:ビューからメソッドを呼び出す
- 5. 拡張ループのジェネリックオブジェクトからのメソッド呼び出しの解決
- 6. 抽象クラスからの配列の拡張クラスからメソッドを呼び出す
- 7. mvcの別のコントローラからコントローラのメソッドを呼び出す
- 8. なぜ私は拡張メソッドを呼び出せませんか?
- 9. 拡張メソッド間の曖昧なメソッド呼び出し
- 10. parent ios appからwatchkit拡張のメソッドを呼び出す方法
- 11. MVC3:別のコントローラからの別のコントローラからビューを呼び出す方法
- 12. _Layoutからコントローラとそのビューを呼び出す
- 13. extjs mvcのコントローラからビューを呼び出す方法4
- 14. ビューからRailsコントローラでカスタムメソッドを呼び出す方法
- 15. _Layoutからビューとそのコントローラを呼び出す
- 16. オブジェクトに対する汎用拡張メソッドの呼び出し?
- 17. 非拡張マップビュークラスからマップビューを呼び出す
- 18. 別の拡張クラスから関数を呼び出す
- 19. Androidの拡張ビュークラスからアクティビティメソッドを呼び出す
- 20. sails.jsコントローラでsuperメソッドを呼び出す
- 21. 別のコントローラからメソッドを呼び出す
- 22. コントローラからコンポーネントのメソッドを呼び出す方法
- 23. JSからコントローラのActionResultメソッドを呼び出す
- 24. Azure:MVC実装のコントローラからWebRoleメソッドを呼び出す方法
- 25. iOS:ビューからMainWindowのメソッドを呼び出しますか?
- 26. Ember:コントローラからコンポーネントアクションを呼び出す
- 27. CCColorLayerクラスのメソッドを別のクラス(アクティビティを拡張する)メソッドから呼び出す方法は、Android?
- 28. ビューからモデルのメソッドを呼び出す
- 29. 拡張クラスメソッドの呼び出し問題
- 30. 拡張クラスの呼び出し関数
ビューでの拡張メソッドの名前空間が含まれていましたか? – Lester
はい私はしました。メソッドにアクセスできますが、アクションリンクのターゲットとして使用すると呼び出されません。 – mans