它完全取決於您的應用程序。我已經有了操作返回純數據(通常是JSON,而不是XML),並處理了客戶端中的顯示,並且該操作返回了部分視圖。對於大多數複雜的顯示場景,我認爲局部視圖路線是最簡單的。基本上,您只返回將要更新的頁面部分(HTML)。您可以在AJAX回調處理程序中使用JavaScript,以使用從服務器獲取的HTML替換頁面上的相應元素。請注意,當你這樣做時,你需要小心事件處理程序綁定 - 在jQuery 1.4+中使用活動處理程序幾乎總是正確的,並且重新綁定所有的,但在jQuery 1.3中單擊處理程序。
示例:假定您正在調用返回分部視圖的MVC操作方法。這將在foo
控制器上每5秒調用一次show
操作,並使用返回的HTML更新containerToUpdate
(推測是DIV)。
setInterval(
function() {
$.get('<%= Url.Action("show", "foo", new { id = Model.ID }) %>',
function(html) {
$('#containerToUpdate').html(html);
});
}, 5000
);
服務器端:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Show(int id)
{
var model = ...
if (this.Request.IsAjaxRequest())
{
return PartialView(model);
}
else
{
return View(model);
}
}
的完整視圖(非AJAX)可能是不必要的 - 你可能只想顯示,如果用戶不應該只是訪問這個錯誤通過AJAX。如果您同時支持,只需在完整視圖內呈現需要的部分,以便重用部分視圖代碼。
你可以舉一個例子說明你的意思是使用ajax回調處理程序嗎? 另請注意,Web服務每隔X秒以javascript間隔調用一次。 欣賞幫助 – eqiz 2010-03-31 19:33:41
我已經在後端添加了一個使用MVC的平臺服務示例。 – tvanfosson 2010-03-31 20:42:32
非常感謝您的幫助,非常感謝 – eqiz 2010-04-01 01:29:51