問題タブ [t4mvc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3154 参照

t4mvc - T4MVCが1つのコントローラーに対して一部のアクションを生成しない

T4MVCがすべてを適切に生成している状況があります(つまり、インテリセンスはすべての領域/コントローラー/アクションを表示し、すべてがコンパイルされます)が、コードを実行すると、T4MVC was called incorrectlyランタイムエラーが発生します。

生成されたファイルを調査したところ、プロジェクト内の1つのコントローラーについて、基本クラスのアクションのみがオーバーライドされたスタブアクションを生成していることがわかりました。他のコントローラーの場合、すべてのアクションが生成されています。以下に説明するように、これらはすべて同じ設定になっています。

BaseControllerいくつかの共有コードを持つ(そしてから継承する)クラスがありますControllerControllersディレクトリ(プロジェクトのルート)には、から継承するいくつかのコントローラーがありますBaseController

次に、いくつかのエリアがあります。各エリアには同じコントローラーがあり、それぞれがルートコントローラーディレクトリ内の同じ名前のコントローラーから継承しています。

T4MVC(バージョン2.6.54)を実行すると、1つのコントローラーを除いてすべてが正常に機能します。奇妙なことに、インテリセンスはコントローラーに対して機能しますが、実際のアクションが(ActionLink()呼び出しで)参照されるとチョークします。

生成されたコードに特に1つのアクションを手動で追加しましたが、エラーは発生しませんでした。

だから私の質問は、T4MVCがコントローラーのすべてのコードを生成しない原因は何ですか?欠落しているアクションはすべてpublic virtual ActionResultであり、アクション自体は正常に機能します。問題のコントローラーには、すべての領域で同じ問題があります。

いくつかの省略コード。

/Controllers/BaseController.cs

/Controllers/ActivitiesController.cs(これは問題のコントローラーです)

/Areas/Module1/Controllers/ActivitiesController.cs。これはクラス全体です

0 投票する
1 に答える
681 参照

asp.net-mvc - T4MVCによって生成された定数はありませんか?

T4MVCで生成されたコードに定数文字列がないのはなぜですか?私の推測では、定数値のコンパイル時のコピーです...

ただし、生成されたコードに定数を追加すると、T4MVCで生成されたものを属性で使用できるようになります。

私はこのようなことについて考えます:

@line 400を挿入:

@line 445を挿入:

したがって、誰かが次のように使用できます。

編集:モデルのオートコンプリート属性として使用したため、「ターゲット」コントローラーとアクションをモデルで指定できます。オートコンプリート属性を作り直して、コントローラー+アクション名の代わりにActionResultをパラメーターとして受け取ることはできますが...

0 投票する
1 に答える
239 参照

t4mvc - Javascript 内で MVCt4 を使用する

私は最近 T4MVC 狂信者になり、今では MVC3 プロジェクトでビジュアル文字列を使用することができないようです。現在、JavaScript 関数内のスクリプト ファイルへの T4MVC リンクを使用しようとしていますが、やり方が間違っているか、または不可能のようです。コードは次のとおりです。どんな助けでも大歓迎です。

編集:

申し訳ありませんが、JavaScript の T4MVC には問題はありません。ページソースを見ると、ちゃんとリンクテキストが生成されています。

0 投票する
1 に答える
702 参照

asp.net-mvc - Chirpy で生成された縮小された js および css ファイルを処理する T4MVC

ASP.Net MVC 3 Web サイトで T4MVC と Chirpy プラグインを使用していますが、どちらも気に入っています。Chirpy および .yui.js javascript ファイルで生成された縮小された js ファイルを処理できないように見えるのは、T4MVC だけです。Chirpy は .min.js ファイルを生成していますが、デフォルトの T4MVC スクリプトは .yui.min.js を想定しています。

T4MVCを機能させるために、T4MVCに次の調整を加えましたT4MVC.tt.settings.t4 に追加しました

そして、 983 行目のT4MVC.ttでコードを変更しました。

このようなスクリプトを含む編集は嫌いですが、他に解決策はありませんでした。

それで、デフォルトのT4MVCスクリプトをそのままにしておく、これに対するより良い解決策を誰かが持っていますか?

0 投票する
1 に答える
427 参照

asp.net-mvc - T4MVCはポータブルアクションと互換性がありますか?

T4MVCは、従来のASP.NETMVC構造でうまく機能します。しかし、それはポータブルエリア(MvcContribの機能)で動作しますか?

0 投票する
3 に答える
1806 参照

constructor - t4mvc : デフォルトのコンストラクターを持たないコントローラー クラスを継承できませんか?

MVC2でT4MVCを使用しています。

次の構成要素があります。

  1. long Idすべての POCO エンティティにプロパティが必要であることを定義する単純なエンティティ インターフェイス:

    /li>
  2. インターフェイスを実装し、IEntityいくつかの文字列プロパティを持つ単純な POCO クラス:

    /li>
  3. ベースコントローラー:

    /li>
  4. 私はこの基本コントローラーを私の中で使用します( CRUD機能を追加するためのUnitOfWorkパターンであるインターフェースを実装するCDController場所):CDManagerIEntityManager

    /li>

t4 テンプレートを実行すると、次のコードが生成されます。

しかし、これによりコンパイル中にエラーが発生します。

MyApp.EntityController<CD> には、0 引数を取るコンストラクターが含まれていません

どうすればこれを解決できますか?

0 投票する
3 に答える
5406 参照

asp.net-mvc - T4MVC @ Url.Action(MVC.Controller.Action())は、QueryStringの "?Area="パラメーターをレンダリングします

以下を使用して、メニューをパーシャルアクションからレイアウトに直接レンダリングしています。

このアクションは、レンダリングするメニュー部分を決定します。たとえば、パブリックメニューの一部です。これらのパーシャル内で、リンクをレンダリングするためにT4MVCも使用しています。

何らかの理由で、T4MVCによってレンダリングされたURLには、末尾に「?Area=」が含まれています。

プロジェクトに領域がなく、「IncludeAreasToken」設定をfalseに設定しました。奇妙なことに、これは「@Html.Action」を使用してパーシャルをレンダリングした場合にのみ発生します。「@Html.Partial」としてプルした場合、パラメーターはレンダリングされず、リンクはクリーンで正しいです。(私はそれを部分的にレンダリングしたくないので、提案としてそれを提供しないでください;)

誰かが前にこれに遭遇しましたか?

0 投票する
3 に答える
1470 参照

asp.net-mvc - T4MVC の「カスタム ツールの実行」で EnvDTO 7.0 vs 8.0 の csc 警告が生成される

T4MVC.tt を右クリックして [カスタム ツールの実行] を選択すると、次の警告が表示されます (つまり、T4MVC.cs ファイルで再構築します)。

警告 1 コンパイル変換: アセンブリ参照 'EnvDTE, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' が 'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' に一致すると仮定すると、ランタイムを指定する必要がある場合がありますポリシー C:\Development\EHealth-Trunk\src\EHealth.Web\T4MVC.tt 1 1

それは本当に大したことではありません。コードベースに(不必要な)警告が表示されるのは好きではありません...

0 投票する
1 に答える
150 参照

c# - T4MVC のインストール時に表示されない

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

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

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

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

0 投票する
1 に答える
457 参照

asp.net-mvc-3 - T4MVC と MvcContrib.TestHelpers を使用したテストで「相対仮想パス」エラーが発生する

私の問題は、MVC ランドでの私の無知によるものですが、T4MVC で生成されたコントローラーの関数のテストを作成しようとしています。そのため、MvcContrib.TestHelper も使用すると思いました。

私は TestControllerBuilder と私のコントローラーを新しくしました。それに対して InitializeController を呼び出そうとすると、例外が発生します。

System.TypeInitializationException: 'Images' の型初期化子が例外をスローしました。---> System.Web.HttpException: アプリケーションへのパスが不明なため、アプリケーションの相対仮想パス '~/Content/Images/add.gif' を絶対パスにすることはできません。

OK、画像を取得しようとしていますが、それらはテスト実行可能ファイルの相対パスにありません...どうすればわかりますか?

この T4MVCHelpers.ProcessVirtualPath() を試しましたが、VirtualPathUtility.ToAbsolute() メソッドを呼び出すと、そこで試したほとんどすべてがエラーをスローします。

私は何か間違ったことをしていることに疑いの余地はありません。TestControllerBuiler が私のモック HTTPContext をセットアップするという私の理解は間違っていますか? 画像のものを無視するように指示できますか?

n00bを助けてください。TestHelper と ProcessVirtualPath の使用方法に関する簡単な例は素晴らしいでしょう。

アップデート

同様のエラーが発生した場合、私の理由は、httpcontext がコントローラー コンストラクターで使用されていたためです。私の場合、T4MVC が生成した強力な型付きイメージ パスでエラーが発生していました。