2017-12-22 16 views
0

こんにちは、私はangularjsを持つSPAアプリケーションを持っていますが、テンプレートURLを使用してコンポーネントを作成する方法はわかりません。Angularjsを使用したASP.NET SPA - コンポーネントtemplateUrl

私のディレクトリ構造は次のとおりです。

SpaApp 
- Scripts 
    - App 
    - test.component.js 
- Controllers 
- Views 
    - Home 
    - test.component.cshtml 

test.component.js

app.component("appTest", { 
    templateUrl: 'test.component.cshtml', //what is the address here? 
    transclude: true, 
    controller: function AppTest() {} 
}) 

私は、ビュー/ホーム/ test.component.cshtmlにURLを追加しようと、それは働いていませんでした。 次に、コンポーネントのjavascriptと同じフォルダにhtmlテンプレートを追加しようとしましたが、それもうまくいきません。 私の問題はどこですか?コンポーネントのhtmlテンプレートのアドレスは何ですか?ありがとうございました

答えて

1

角のテンプレートとして直接剃刀のビューを使用することはできません。レイザービューはASP.NETによってコンパイルされ、Webサーバーによって直接静的ファイルとして提供されるのではなく、角度テンプレートはHTTP経由で非同期にロードされるか、または角度templatecacheを通じて取得されます。

2つのオプションがあります。

  1. 角度テンプレートとしてかすみビュー(.cshtml-ファイル)を使用しないでください。代わりに通常の.htmlファイルを使用してください。
  2. 静的ファイルの代わりにASP.NET MVCアクションを参照してください。あなたの場合(デフォルトのルーティング設定を前提としています)、templateUrl/Home/Testにする必要があります。

最初のオプションをお勧めし、ASP.NET MVCカミソリのビューを角度から完全に分離してください。

+0

ありがとう、私はあなたの最初のオプションを試みました。私はjsファイルと同じフォルダにhtmlファイルを持っていましたが、それはあまりにも動作していません。バンドル設定でこのhtmlファイルパスを持っている必要がありますか? – bluray

+0

htmlテンプレートへのパスは、アプリケーションのルートからの相対パスでなければなりません。ここで、ルートはASP.NETアプリケーションの実行ディレクトリです。 –

+0

私に例を教えてもらえますか? – bluray

関連する問題