У меня есть страница со списком пользователей (List.vbhtml), и у каждого пользователя есть ссылка «Изменить». Ссылка редактирования делает запрос Ajax:
@Ajax.ActionLink("Edit", "Edit", "Player", New With {.id = currentItem.PlayerId}, New AjaxOptions() with { .UpdateTargetId="edit"})
Метод Edit в моем контроллере возвращает частичное представление (_Edit), которое содержит форму. После отправки формы я хочу скрыть форму редактирования (не проблема), а затем перезагрузить список пользователей. Вот с чем я борюсь.
Как я могу сообщить родительскому представлению (List.vbhtml), что я должен перезагрузить список (что будет сделано с помощью запроса Get Ajax)?
Я не могу сделать это из частичного представления «Правка», потому что частичное представление «Правка» не должно знать о представлении «Список», только наоборот (представление «Список» знает о частичном представлении).
Мое текущее решение - вызвать пользовательское событие после завершения редактирования в _Edit.vbhtml и записать его в List.vbhtml:
_Edit.vbhtml:
//let anyone listening know the edit is complete
$(document).trigger('PersonEditComplete');
List.vbhtml
//when player edit is complete, reload the player list
$(document).bind('PersonEditComplete', function () {
Player.List.Reload();
});
Спасибо