3

私のソリューションには、いくつかのコントローラーとコンパイル済みビューを含む別のプロジェクトがあります。これらのコントローラーを MVC アプリケーションの他のコントローラーの基本クラスに使用し、ビューは RazorGenerator を使用してコンパイルされます。

BがView("_MyView") を返す非抽象アクション メソッドSomeActionを持つ Base Controller であるとします。_MyView.cshtmlは、RazorGenerator を使用してコンパイルされます。

コントローラーAはBを継承しますが、 SomeActionをオーバーライドしないとします。

別のビュー"~/Views/A/_MyView.cshtml"を作成して既定のビューを上書きしようとしましたが、うまくいきません。私の質問は、どうすればこれを達成できますか?

追加情報

1)デフォルトでは、ビューはそれらのパスでその順序で検索されることを知っています

"~/Views/{1}/{0}.cshtml",
"~/Views/{1}/{0}.vbhtml",
"~/Views/Shared/{0}.cshtml",
"~/Views/Shared/{0}.vbhtml"

2)「~/Views/Shared/_MyView.cshtml」を配置すると、ビューがオーバーライドされますが、コントローラーAだけでなく、 Bを継承する他のすべてのコントローラーでも オーバーライドされます

3) base.SomeAction() を返すために SomeAction をオーバーライドしても機能しない

アップデート

ここで同様の質問を見つけましたが、提案を行っても何も起こりませんでした RazorGenerator Issues

ここに自分の問題を投稿しました

前もって感謝します!

4

2 に答える 2