asp.net Hot Towel SPAアプリケーションがあり、.htmlページと.cshtmlページの両方を使用したいと思います。
複数のviewExtensionsを追加することは可能ですか?
viewEngine.viewExtension = '.cshtml';
viewEngine.viewExtension = '.html';
asp.net Hot Towel SPAアプリケーションがあり、.htmlページと.cshtmlページの両方を使用したいと思います。
複数のviewExtensionsを追加することは可能ですか?
viewEngine.viewExtension = '.cshtml';
viewEngine.viewExtension = '.html';
viewExtensionは配列ではないため、最初は複数のviewExtensionsを設定できません。もちろん、これは単なるjavascriptであり、ソースに移動して、コアのDurandalアプリフォルダーからviewEngine.jsを変更できます(リンクはここにあります:https ://github.com/BlueSpire/Durandal/blob/master/App/durandal /viewEngine.js)。
そうは言っても、クライアントが* .cshtmlファイルをプルダウンした場合、かみそりの構文は、あなたが信じている方法でレンダリングされません。サーバーが*.cshtmlビューを提供する場合、クライアントに吐き出される前にレンダリングされます。Durandalを使用した動的ビューレンダリングを探している場合の最善の策は、viewEngineの一方または両方の関数をオーバーライドすることです。viewEngine.convertViewIdToRequirePath(viewId):stringであり、さらに制御するにはviewEngine.createView(viewId):promiseです。
詳細については、次のリンクを確認してください:DurandalJSでの動的コンテンツのルーティングと活用
この要点を見てください:https ://gist.github.com/irium/5191764
これは、同様の問題に対する私自身の解決策です。これらは、デュランダルviewEngine
とのカスタマイズですviewLocator
。このモジュールをモジュールにインポートし、と関数shell
の両方を実行します。その後、拡張子の付いたビューは以前と同じように処理されますが、ビューはリモートサーバーから要求されます。ただし、覚えておいてください。Durandalのビューキャッシュにより、これは1回だけ実行されます。同じビューの後続のすべてのリクエストは、クライアント側でキャッシュされたバージョンを使用します。これは、ビューのモジュールをRequireJSから手動で登録解除することで変更できますが、これは私のニーズの範囲外です。customizeViewEngine()
customizeViewLocator()
.html
.cshtml
これはJavaScriptにコンパイルされたCoffeScriptコードですが、アイデアが得られ、私のコードがお役に立てば幸いです。