2010-12-16 95 views
0

是否有可能調用控制器動作來更新(刷新)視圖中的部分更新模型?如果是這樣,有人可以指點我一個例子嗎?ASP.NET MVC 2:更新部分?

我在做一個ajax調用。該調用將一些json發送給控制器。控制器提取json並將其格式化爲XML,然後傳遞給SPROC。 SPROC的結果更新模型。這是我需要用最新的模型結果更新視圖的地方。

+0

告訴我們更多。這是一個Ajax場景嗎? – 2010-12-16 00:22:09

+0

@Matt,是的,我使用jQuery進行ajax調用。 ajax發送json,我的控制器接受json並將其轉換爲一個字符串來調用SPROC。我試圖然後採取更新的模型,並將其傳遞給部分。 – dcolumbus 2010-12-16 00:26:42

回答

0

是的,你只需要讓動作返回PartialView及其更新的模型。調用代碼可能是這樣的:

<div id="MyDiv"></div> 
<%=Ajax.ActionLink("Update", "GetUpdatedPartialView", 
    new AjaxOptions{UpdateTargetId = "MyDiv"}) %> 

當你點擊鏈接,通過您的操作返回的HTML將得到安置爲與ID「MyDiv」股利。

編輯

我沒有我的代碼與我,但如果我記得沒錯它是這樣的:

var url = '<%=Url.Action("GetUpdatedPartialView")%>'; 
$.post(url, function(data) {$('#MyDiv').html(data);}); 
+0

這怎麼能使用jQuery ajax完成?我沒有使用actionlink,而是一個Ajax函數。 – dcolumbus 2010-12-16 00:29:23

+0

@dcolumbus:看我的編輯 – StriplingWarrior 2010-12-16 04:02:23

0

在控制器,你可以這樣做:

if (Request.IsAjaxRequest()) { 
    return View(name_of_partial, updated_model); 
} 

在前端,它只是一個jQuery load,是這樣的:

$("#target-div").load(url_of_action, data_to_send);