我正在編寫一個MVC應用程序,並且我已經決定Knockout.js會幫助解決很多我的問題,除了在這個過程中,它創建了一個新問題,我有問題解決。MVVM MVVM通過敲除,將模型傳遞給javascript
我將所有MVC端點轉換爲僅僅返回視圖,然後創建了其他幾個返回JSON對象的端點。當用戶瀏覽網站時,該網站加載基本的UI框架。之後,Knockout.js通過AJAX調用加載模型。這導致每個頁面加載,然後再次「加載」,就像加載頁面的MVC和所有數據一樣。
我一直在尋找方法來同時加載,但我還沒有發現任何不需要我完全重構該網站。最好的辦法是:
- 合併JSON端點到視圖端點和使用
@Html.Raw(Json.Encode(object))
模型轉換成JSON的代碼隱藏,但後來我不得不讓我所有的純JSON端點的車程。
我還有什麼可以將JSON端點數據傳遞給服務器端的視圖嗎?或者有什麼方法讓模型和視圖同時加載?
謝謝你的回答!爲了確保我在同一頁面上,我應該在視圖內部調用JSON端點?像這樣:var model = @ Html.Action(「Data」,「Items」)模型在js中? – 2012-04-21 21:26:54
只調用JSON端點進行更新。如果你創建一個ViewModel對象並在Javascript中與它進行交互,你應該只有視圖與該對象交互,並且擁有封裝AJAX請求的方法(使用Controller端點)。這將使您能夠定期執行諸如緩存或更新之類的智能功能。 – 2012-04-21 22:54:53
好的,所以我的視圖端點應該返回一個被翻譯成JavaScript的模型,我應該有返回該模型的更新版本的json端點?我能做些什麼來消除代碼重複我是這種情況? – 2012-04-22 00:49:56