我使用EditorTemplates來處理諸如DateTime,Colors等東西。我的表單可能包含相當多的這些模板,它們主要通過Ajax作爲局部視圖加載。通過Ajax加載的ASP.NET MVC3 EditorTemplates沒有複製jQuery?
而不是在每個編輯器模板的底部有一堆jQuery初始化腳本,有沒有一種概念性的方式來做它每個響應只有一次?比方說,你有10個日期時間選擇器,在一個表單中,傳遞相同的初始化代碼10次真的很愚蠢。
使用10日期選擇器將初始化腳本放置在主窗體上會很有效(當然,將代碼隔離到日期時間編輯器模板並沒有多大作用),但是在其他情況下,您可能只想擁有一個日期時間選擇器使用不同的表單或兩到三個,現在您可以在代碼中的多個視圖中複製這些腳本。
那麼我怎麼能仍然在這裏利用編輯器模板正確的方式?我想我正在尋找類似的東西 -
EnsureThisScriptIsOutputOncePerThisResponse(<script>$('.datepicker').datepicker("insert lengthy config here");</script>)
添加到通過AJAX渲染的部分景色的作品編輯模板的底部。
謝謝。然後我拿它通過ajax呈現的東西,然後您必須再次調用initializebuttons,並在視圖底部使用簡單的? – psy
nope ... $(document).ready(initializeButtons).ajaxSuccess(initializeButtons)'在文檔就緒**和** ajax成功時調用'initializeButtons'。 –
有趣。我喜歡這個。在初始響應之前,我開始沿着將所有內容移動到.js文件的路徑,然後在每個分部視圖的末尾調用一個函數來傳遞選擇器以初始化該項目。在每個Ajax調用之後調用這個函數是否有任何性能問題(可能有10個用於不同類型的編輯器/ UI對象)? – psy