[英]asp.net MVC with MVVM via Knockout, pass model to javascript
我正在寫一個MVC應用程序,我已經決定Knockout.js將幫助解決我的很多問題,除了在這個過程中,它已經創建了一個我正在解決問題的新問題。
我將所有MVC端點轉換為僅返回視圖,然后我創建了幾個返回JSON對象的端點。 當用戶瀏覽網站時,該網站會加載基本UI框架。 之后,Knockout.js通過AJAX調用加載模型。 這導致每個頁面都被加載,然后再次“加載”,就像加載頁面的MVC和所有數據一樣。
我一直在研究如何同時加載兩者,但我沒有找到任何不需要我完全重構網站的東西。 最好的選擇是:
@Html.Raw(Json.Encode(object))
將模型轉換為代碼隱藏中的JSON 但是我必須得到所有純JSON端點。
我還能做些什么來將JSON端點數據傳遞到服務器端的視圖嗎? 或者以任何方式同時加載模型和視圖?
我也同意讓初始視圖生成將初始數據直接渲染到視圖中是個好主意。 通常,這會產生比單獨的AJAX調用+之后填充數據的JavaScript更好的性能。
但我也認為這取決於您正在加載的頁面類型。 如果您的應用程序主要是基於AJAX(SPA樣式模型),那么第一次加載可能不是那么重要,因為它只發生一次,並且可能需要花費額外的時間。 通過AJAX或傳統的View操作以一種方式加載所有數據會更容易一些。 當您的客戶端代碼要求您重新加載列表或記錄的整個數據集時,您最終不會復制模板/視圖邏輯以生成該輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.