Asp.net mvc 3 一个链接可以调用两个Ajax更新吗?
我有一个MVC 3页面,它有两个部分视图,一个用于Bucket A中的Asp.net mvc 3 一个链接可以调用两个Ajax更新吗?,asp.net-mvc-3,Asp.net Mvc 3,我有一个MVC 3页面,它有两个部分视图,一个用于Bucket A中的项,另一个用于Bucket B中的项(简化以供讨论…呈现每个Bucket都有重要的逻辑,而且各个Bucket之间的逻辑不同) 我在页面上有一个链接,可以将项目从Bucket a移动到Bucket B。单击该链接后,我必须刷新Bucket A中项目的部分视图,以及Bucket B中项目的部分视图 我可以使用Ajax刷新其中一个,如下所示: @Ajax.ActionLink("Move to B", "_BucketB", "Ho
项,另一个用于Bucket B
中的项(简化以供讨论…呈现每个Bucket都有重要的逻辑,而且各个Bucket之间的逻辑不同)
我在页面上有一个链接,可以将项目从Bucket a
移动到Bucket B
。单击该链接后,我必须刷新Bucket A
中项目的部分视图,以及Bucket B
中项目的部分视图
我可以使用Ajax刷新其中一个,如下所示:
@Ajax.ActionLink("Move to B", "_BucketB", "Home", new { item = Model.Item },
new AjaxOptions()
{
UpdateTargetId = "divForBucketB",
HttpMethod = "Post",
InsertionMode = InsertionMode.Replace
})
单击ActionLink时,如何处理刷新divForBucketA
的问题
更新
进入divForBucketA
的HTML需要使用适当的视图和控制器生成。对div
内容的更改太重要,无法在JavaScript客户端上处理(除了调用另一个Ajax调用……可以这样做吗?您可以使用AjaxOptionsOnComplete
或OnSuccess
(取决于您的需要)指定Ajax调用完成后要调用的Javascript函数,以执行任何附加处理(如更新另一个bucket)。使用jQuery可以这样做。显然,您需要修复Url.Action调用,这确实假设BucketA控制器方法返回PartialView
$(document).ready(function() {
$('#mybutton").click(function() {
$.get(@Url.Action("Index", "BucketA"), function (data) {
$('#bucketA').html(data);
});
$.get(@Url.Action("Index", "BucketB"), function (data) {
$('#bucketB').html(data);
});
e.preventDefault();
});
});
“Bucket A”的内容需要由适当的控制器生成。。。在客户机上仅用JavaScript执行此操作是不合适的。我将更新这个问题以澄清这一点。在这种情况下,您可以为链接添加一个onclick处理程序,并让它调用一个javascript函数,该函数启动两个ajax调用,我上面的评论意味着删除Ajax.ActionLink,并使其成为您设置onclick处理程序的常规链接。我认为您最好放弃AjaxOptions
,使用jQuery滚动您自己的Ajax。这样您就可以执行onclick=myfunction()
,其中myfunction()
触发2个ajax调用并更新div。您能解释一下“修复Url.Action调用”是什么意思吗?@Url.Action(“Index”,“BucketA”)