1

ASP.NET MVC 3 Web アプリケーションがあります。最近、パッケージ マネージャーを使用して T4MVC テンプレートをインストールしました。

Tools -> Library Package Manager -> Package Manager Console

PM> install-package T4MVC

これにより、T4MVC.tt と T4MVC.tt.Settings.t4 がプロジェクトに含まれ、一連のファイルが自動生成されました (プロジェクトには約 10 個のコントローラーがあります)。その直後にプロジェクトをビルドして実行しようとしましたが、コントローラーの 1 つでエラーは発生しませんが、どのアクションもレンダリングされていません。つまり、関連するビューから生成されたページではなく、完全に空白のページがブラウザに表示されます。他のすべてのコントローラーは正常に動作します。

この 1 つのコントローラーと正常に動作している他のコントローラーとの違いを実際に見分けることはできません。前述のように、エラーはありません...そのコントローラーでアクションを実行すると、空白のページが表示されます。

何が起こっているのかについてのアイデアはありますか?

4

1 に答える 1

1

ああ、私は何が起こるか理解しています: 各アクションに対して、T4MVC はパラメーターなしでオーバーロードも生成します。したがって、この場合はパラメーターなしの View と呼ばれるメソッドになり、同じ名前/署名を持つ MVC メソッドを非表示にします。おそらく警告が表示されることに注意してください。

'Mvc3Application.Controllers.HomeController.View()' hides inherited member 'System.Web.Mvc.Controller.View()'.
Use the new keyword if hiding was intended.

その特別なケースをカバーするために T4MVC にいくつかのロジックを入れることができますが、そのアクション名を避けることができれば、それはより良いでしょう:)

于 2011-08-11T01:04:50.743 に答える