Asp.net mvc 3 一个链接可以调用两个Ajax更新吗?

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

我有一个MVC 3页面,它有两个部分视图,一个用于Bucket A中的
项,另一个用于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调用……可以这样做吗?

您可以使用AjaxOptions
OnComplete
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”)