私は、DateTime、Colorsなどのようなものに対してEditorTemplatesを使用しています。これらのテンプレートをかなり含んでいる私のフォームは、主にAjax経由で部分ビューとして読み込まれます。ASP.NET MVC3 EditorTemplatesはjQueryを複製しないでAjax経由でロードされますか?
各エディタテンプレートの一番下にjQuery初期化スクリプトがたくさんあるのではなく、レスポンスごとに1回だけ行う概念的な方法がありますか? 1つのフォームに10の日付時刻ピッカーがあるとすれば、10回同じ初期化コードを渡すことは本当に愚かなことでしょう。
10個の日付ピッカーでメインフォームに初期化スクリプトを配置するのは効率的です(もちろん、日時エディタテンプレートにコードを隔離することはあまりありません)。しかし、他にも別のフォームまたは2つまたは3つの日付選択ツールで、コード内の複数のビューにこれらのスクリプトを複製しています。
ここで、エディタテンプレートをここでどのように活用できますか? AJAX経由でレンダリングされた部分図で動作エディタテンプレートの一番下に追加する
EnsureThisScriptIsOutputOncePerThisResponse(<script>$('.datepicker').datepicker("insert lengthy config here");</script>)
- 私は私のようなものを探していると思います。
ありがとうございます。次に、ajax経由でレンダリングされたものを取ると、initializebuttonsを再度呼び出す必要があります。ビューの一番下に? – psy
nope ... '$(document).ready(initializeButtons).ajaxSuccess(initializeButtons)'は、ドキュメント準備完了**と** ajax成功時に 'initializeButtons'を呼び出します。 –
興味深い。私はこれが好き。あなたの最初の応答に先立って、私はすべてを.jsファイルに移動する方法を開始し、各部分ビューの終わりに関数を呼び出して、セレクタでアイテムを初期化しました。この関数を呼び出す際のパフォーマンス上の問題はありますか(また、エディタ/ UIオブジェクトの種類ごとに10種類あります)。 – psy