Может ли одна ссылка вызвать два обновления Ajax? - PullRequest
0 голосов
/ 09 марта 2012

У меня есть страница MVC 3, которая имеет два частичных представления, одно для Items in Bucket A и одно для Items in Bucket B (упрощено для обсуждения ... есть существенная логика для рендеринга каждого сегмента, и эта логика различна между сегментами ).

У меня есть ссылка на странице, которая позволяет мне перемещать элемент с Bucket A на Bucket B. После нажатия на эту ссылку мне нужно обновить частичные представления для Items in Bucket A и частичные представления для Items in Bucket B.

Я могу обновить одну или другую, используя Ajax, например:

@Ajax.ActionLink("Move to B", "_BucketB", "Home", new { item = Model.Item }, 
new AjaxOptions()
{
    UpdateTargetId = "divForBucketB",
    HttpMethod = "Post", 
    InsertionMode = InsertionMode.Replace
})

Как мне решить проблему обновления divForBucketA при нажатии на ссылку ActionLink?

UPDATE

HTML, который входит в divForBucketA, должен быть сгенерирован с использованием соответствующего View и Controller. Изменения в содержимом div слишком значительны, чтобы их можно было обрабатывать на клиенте в JavaScript (кроме, возможно, вызова другого вызова Ajax ... это можно сделать?)

Ответы [ 2 ]

1 голос
/ 09 марта 2012

Вот как вы можете сделать это с помощью 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();
   });
});
1 голос
/ 09 марта 2012

Вы можете использовать AjaxOptions OnComplete или OnSuccess (в зависимости от ваших потребностей), чтобы указать функцию Javascript, вызываемую после завершения вызова Ajax для выполнения какой-либо дополнительной обработки (например, обновления другого блока).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...