Tengo una aplicación web ASP.NET MVC que se ejecuta en http://localhost/myappname
. Desde jQuery, realizo jQuery $ .ajax() llamadas para devolver vistas parciales basadas en alguna acción del usuario. Normalmente llamo esto desde una vista en el mismo controlador que contiene la función que estoy llamando a través de Ajax. Por ejemplo, una vista en mi controlador de Inicio tiene la siguiente función (que funciona bien):jQuery Ajax: URL del controlador MVC de referencia de la raíz de la aplicación
function loadMyPartialView() {
$.ajax({
type: 'GET',
url: 'Home/GetNavigationTreePV/',
success: function (data) { onSuccess(data); },
error: function (errorData) { onError(errorData); }
});
return true;
}
Esta URL anterior se resuelve a http://localhost/myappname/Home/GetNavigationTreePV
y la vista parcial se devuelve correctamente.
Ahora, estoy tratando de usar qUint para probar mis funciones. En este caso de prueba, solo quiero verificar que llego al final de la función y regreso verdadero. He creado un controlador QUNIT
y la vista correspondiente (que carga mi unidad JavaScript de prueba). Desde el archivo test.js que contiene mis pruebas unitarias, trato de hacer llamadas a las mismas funciones que están en mis vistas de Inicio, como la anterior. Pero, como ahora me estoy quedando sin el controlador QUNIT
, la URL se resuelve en http://localhost/myappname/qunit/Home/GetNavigationTreePV
.
He intentado cambiar el URL de mi solicitud de AJAX a /Home/GetNavigationTreePV/
(con la barra diagonal anterior), pero cuando lo hago obtengo la siguiente url http://localhost/myappname/Home/GetNavigationTreePV
.
Así que, para ser claros, estoy tratando de escribir mi solicitud de Ajax de una manera que siempre comenzará desde la raíz de mi aplicación MVC, y luego anexar el parámetro url dado en mi función $ .ajax().
¿Hay alguna manera fácil de hacerlo? ¿Estoy hablando de esto de una manera extraña?
Esto es exactamente lo que estaba buscando también. Tenía problemas al implementar mi aplicación en IIS, en ese caso la URL mencionada en el archivo js no se resolvía correctamente. – binu