Ho un'applicazione Web ASP.NET MVC in esecuzione da http://localhost/myappname
. Da jQuery, faccio chiamate jQuery $ .ajax() per restituire viste parziali basate su qualche azione dell'utente. Solitamente lo chiamo da una vista nello stesso controller che contiene la funzione che sto chiamando tramite Ajax. Ad esempio, una vista a mio controller Home ha la seguente funzione (che funziona bene):jQuery Ajax: URL del controller MVC di riferimento dalla radice dell'app
function loadMyPartialView() {
$.ajax({
type: 'GET',
url: 'Home/GetNavigationTreePV/',
success: function (data) { onSuccess(data); },
error: function (errorData) { onError(errorData); }
});
return true;
}
Questo soprattutto url viene risolto al http://localhost/myappname/Home/GetNavigationTreePV
e la vista parziale viene restituito correttamente.
Ora, sto cercando di utilizzare qUint per testare le mie funzioni. In questo test case, voglio solo verificare di arrivare alla fine della funzione e restituire true. Ho creato un controller QUNIT
e una vista corrispondente (che carica il file JavaScript di test dell'unità). Dal file test.js che contiene i miei test di unità, provo a effettuare chiamate alle stesse funzioni presenti nelle visualizzazioni Home, come quella sopra. Ma, dal momento che sto esaurendo il controller QUNIT
, l'URL viene risolto in http://localhost/myappname/qunit/Home/GetNavigationTreePV
.
Ho provato a cambiare l'url della mia richiesta Ajax a /Home/GetNavigationTreePV/
(con la barra precedente precedente), ma quando lo faccio ottengo il seguente url http://localhost/myappname/Home/GetNavigationTreePV
.
Quindi, per essere chiari, sto cercando di scrivere la mia richiesta Ajax in un modo che partirà sempre dalla radice della mia applicazione MVC, e quindi aggiungere il parametro url dato nella mia funzione $ .ajax().
C'è un modo semplice per farlo? Sto andando su questo in un modo strano?
Questo è esattamente quello che stavo cercando. Stavo affrontando problemi quando distribuivo la mia app su IIS, in quel caso l'url menzionato nel file js non si risolveva correttamente. – binu