Как вызвать javascript на странице MVC хоста, когда ajax-вызов в частичном представлении завершен? - PullRequest
1 голос
/ 16 июля 2009

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

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

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

1 Ответ

1 голос
/ 22 июля 2009

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

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

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

...