2010-12-16 87 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);