Как мне позвонить JavaScript на странице MVC Host MVC, когда Ajax Call в частичном представлении завершен?

StackOverflow https://stackoverflow.com/questions/1135328

Вопрос

У меня есть частичное представление ASP.NET MVC, которое используется для поиска. Это делает вызов Ajax, чтобы получить результаты. После того, как результаты будут получены и отображаются на панели результатов, пользователь может нажать на ссылку в любом из строк результатов, чтобы выбрать один из результатов поиска. Когда пользователь нажимает на ссылку, чтобы выбрать один из результатов поиска, он сделает запрос POST AJAX для обновления некоторого состояния. После завершения этого вызова Ajax мне нужно перенаправить на другую страницу, но страница назначения зависит от того, на какой странице находится пользователь. Этот частичный представление поиска будет размещено на нескольких страницах, а местоположение перенаправления будет отличаться для каждой из страниц хоста. Я не могу придумать способ сделать это, что имеет смысл и не сочетает частичное представление на странице хостинга (или наоборот) чрезмерно.

Я предполагаю, что другой вариант может быть перенаправить на другую страницу после завершения вызова выбора Ajax (в конечном итоге это цель), но не будет ли результат перенаправления в рамках вызова Ajax не проглатываться?

Или вместо этого есть способ иметь кнопку или ссылку в каждой строке, что приводит к возникновению запроса поста, который может вернуть результат перенаправления с назначением на основе вызовой страницы?

Это было полезно?

Решение

В итоге я использовал своего рода шаблон Templatemethod, чтобы сделать эту работу. В моем частичном я добавил функцию JavaScript:

function onActionCompleted() {
    DoSomethingLocal();
    if (typeof DoSomethingInParentPage == 'function') {
        DoSomethingInParentPage();
    }
} 

Это проверяет, существует ли функция и является функцией, и если она вызывает функцию. Чтобы это работало, страница хостинга может выбрать реализацию метода DosomethingInparentPage, чтобы завершить некоторые действия, когда действие будет завершено в частичном. Я не уверен, как проверить совпадение параметров, но, по крайней мере, я получаю звонок, когда частичный закончил свою работу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top