2

Visual Studio 2010 Express Edition で T4MVC VB を使用すると問題が発生します。

コントローラーで T4MVC クラスを参照できますが、ビュー (実際に必要な場所) でそれらにアクセスできません。

MVCビューでは、クラスが無効であるかのように、次のコードが IntelliSense によって上書きされます。

MVC.Home.GameBoard

に置き換えられます

Mvc.Home.GameBoard

エラーメッセージが生成されます'Home' is not a member of 'Mvc'。ビューには、クラスをMvc隠している名前空間があるようです。MVCこれはコントローラには存在しません。どうすればこれを機能させることができますか?

更新:もう少し遊んだ後、クラスの名前に関係なく、ビューでクラスを使用できないようです。ビューで使用できるクラスと名前空間を決定するものは何ですか? クラスは、名前付けに関係なく、コントローラーで引き続き使用できます。ビューで利用できるものに何らかのフィルターまたは制限が必要だと思いますか?

更新: Phil Haackのこの素晴らしいビデオを見たところ、手がかりが得られました。

<pages>web.config ファイルのセクションを変更する必要があります。問題は、MVC クラスがデフォルトであるため、名前空間にないクラスを使用できるかどうかです。それ以外の場合は、T4 テンプレートを変更して名前空間に配置し、それを含める必要があります。

4

1 に答える 1

0

VB は (C# とは異なり) 大文字と小文字を区別しないため、ある種の名前の競合が発生しているようです。

T4MVC.settings.t4 に移動して、HelpersPrefix を「MVC」から競合しない別のもの (「MyMvc」など) に変更してみてください。次に、MVC の代わりにそのプレフィックスを使用するようにコードを変更します。

うまくいけば、それですべてです!

于 2010-11-29T00:19:01.043 に答える