我使用MVC編寫了一個簡單的搜索API,我可以從JQuery中進行查詢。現在我的代碼看起來是這樣的:MVC - 從API控制器訪問視圖模型
$.ajax({
url: 'api/search',
type: "POST",
data: paramString,
dataType: "json",
success: function(data) {
$('#dataTable').append('<tr>' + '<td>' + params.SearchString + '</td>' + '<td>' + params.DateFrom + '</td>' + '<td>'+ params.DateTo + '</td>' + '<td>'+ JSON.stringify(data) + '</td>' + '</tr>');
}
});
基本上所有我做的是發送搜索標準的API,得到結果反饋,然後編寫相關標準和搜索結果到一個新的行中的結果表,直接轉換爲HTML。
由於顯而易見的原因,我不太喜歡這個解決方案;它實際上並沒有將數據放在任何類型的數據結構中,它只是將其放在HTML中,使得將來很難操作它,並且不能很好地遵循MVC的基本設計原則。
我試圖重構它,以便對API的調用不返回任何內容,並將搜索結果添加到ViewModel中的列表中,然後可以動態顯示。
但是我找不出一個智能的方式讓模型進入API控制器。它存儲在服務器端,所以我不認爲我必須通過JavaScript將它傳遞給視圖,但我無法想出更好的方法。
謝謝!
,我認爲最好的辦法是讓你的服務回報JSON,然後輸出反正你喜歡你的觀點之內。 – user1477388
您無法「將搜索結果添加到視圖模型中的列表」,因爲一旦提供了ajax響應(實際上一旦頁面加載),視圖模型就不再存在。 –