Ho la seguente situazione.URL relativo in JQuery Post Call
Ho sviluppato la mia prima applicazione MVC Asp.Net. gira sul mio server al seguente indirizzo
http://localhost:59441/
ho scritto alcuni JQuery sul post I metodi che si presentava così
$.ajax({
type: "POST",
url: "/CeduleGlobale/UpdateCheckBox", ...
CeduleGlobale è il mio NomeControllore e UpdateCheckBox è il mio nomeMetodo
Quando ho mettere l'applicazione sul testServer, è stato inserito in una directory virtuale
quindi l'ap plicatura è ora
http://testServer/JprApplication/
non più porta per specificare e anche una domanda Nome
Quando ho iniziato a testare, ho subito notato le mie chiamate JQuery postali non funzionano più ...
I li ha modificati così ora l'URL è
/JprMvc/CeduleGlobale/UpdateCheckBox
il problema è di 2 volte.
- rende difficile eseguire il test sul mio computer di sviluppo perché IIS Express non mi consente di specificare una directory virtuale.
- Non mi piace hardCoding il nome della directory virtuale in JQuery perché non so quale nome avrà l'applicazione nell'ambiente di produzione e quindi dovrò modificare il mio script prima di poter installare l'applicazione in produzione.
sono sicuro che mi manca qualche cosa di base per semplificare questo.
Grazie
Personalmente non sono un fan dell'uso dei nomi di percorso a meno che non siano davvero complicati, la maggior parte dei tempo mi interessa solo un semplice controller/azione, quindi uso Url.Action ("MyAction", "MyController") invece. – viggity
Grazie, ma riguardo all'opzione 3: Piuttosto sicuro di non voler usare 'Server.MapPath' perché espone la directory fisica mappata a quel percorso virtuale. Probabilmente hai pensato di usare 'Request.ApplicationPath', che è solitamente utilizzato per generare una stringa di" approot "in fase di runtime per l'utilizzo da parte dei metodi JS (specialmente per i prodotti COTS, dove il nome dell'app non può essere codificato). – nothingisnecessary
Opzione 3: invece di scrivere @ Request.ApplicationPath su ogni singola vista, è sufficiente scriverla una volta sul tuo _Layout.cshtml (o sulla qualsiasi pagina "master"). Ora hai una variabile globale disponibile per tutti i tuoi file JS. – Dimskiy