Como llamar en javascript en la página de acogida MVC cuando ajax llamada en vista parcial es completa?

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

Pregunta

Tengo una vista parcial Asp.net MVC que se utiliza para la búsqueda. Se hace una llamada Ajax para recuperar los resultados. Una vez que los resultados se recuperan y se muestran en el panel de resultados, el usuario puede hacer clic en un enlace en cualquiera de las filas de resultados para seleccionar uno de los resultados de búsqueda. Cuando el usuario hace clic en un enlace para seleccionar uno de los resultados de la búsqueda, se hará una solicitud POST Ajax para actualizar algún estado. Una vez que esto se ha completado la llamada Ajax, que necesito para redirigir a otra página, pero la página de destino depende de la página que el usuario está conectado. Esta vista parcial búsqueda se encuentra alojado en varias páginas y la ubicación de redireccionamiento será diferente para cada una de las páginas de acogida. No puedo pensar en una manera de hacer esto que tiene sentido y no lo hace acoplar la vista parcial a la página de alojamiento (o viceversa) en exceso.

Creo que la otra opción podría ser la de redirigir a otra página una vez que la selección Ajax llamada es completa (esto es en última instancia el objetivo), sino que no es el resultado de redireccionamiento dentro de un Ajax comunicación salga tragado?

O hay una manera de tener un botón o enlace en cada fila en cambio que hace que una solicitud posterior a ocurrir que podría devolver un resultado de redirección, con el destino sobre la base de la página de llamada?

¿Fue útil?

Solución

Terminé usando una especie de patrón TemplateMethod para hacer este trabajo. En mi parcial He añadido la función de JavaScript:

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

Esto comprueba si la función existe y es una función, y si es que llama a la función. Para que esto funcione, la página de alojamiento puede optar por aplicar el método DoSomethingInParentPage para completar alguna acción cuando la acción se completa en el parcial. No estoy seguro de cómo comprobar el partido parámetros, pero al menos me da una llamada cuando el parcial ha terminado su trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top