Sto caricando del contenuto tramite jQuery.load ('/ Business/Tag'), che funziona bene quando si utilizza il mio server web locale. Ma quando si usa iis questo non si risolve correttamente. Ho visto un paio di modi diversi per aggirare questo come ResolveUrl. Qual è il modo migliore per gestire gli URL di risoluzione nel tuo javascript?ASP.NET MVC risolve gli URL in javascript
risposta
Mi sono imbattuto in questo esatto problema con il mio JavaScript. Poiché il mio JavaScript era anche in un file separato incluso nella mia Pagina Master, non potevo usare ResolveUrl nel mio caso.
Ecco come l'ho risolto nel mio caso. Ho incluso il seguente JavaScript nel tag head nella mia pagina master in alto:
<script type="text/javascript">
var baseUrl = "<%= Request.Url.GetLeftPart(UriPartial.Authority) %>";
</script>
sto impostando una variabile globale che è accessibile a tutti i miei file JavaScript denominato baseurl.
Il tuo codice sarebbe poi diventato:
jQuery.load(baseUrl + '/Business/Tags');
Per quanto mi riguarda sto usando aiutanti Url.Action/Url.RouteUrl con JavaScript/jQuery dove è possibile:
$.load('<%= Url.Action("Tags", "Business") %>')
o
In altri casi sto usando l'helper ResolveUrl (da MVCContrib o è possibile scrivere il proprio):
$.load('<%= Url.ResolveUrl("~/Business/Tags") %>')
aggiornamento:
E 'anche possibile creare controller speciale per il vostro JavaScript/jQuery con le azioni, tornando PartialViews con JavaScript:
public ActionResult YourJavaScript()
{
Response.ContentType = "application/x-javascript";
return PartialView("YourJavaScript");
}
Poi, nel tuo YourJavaScript.ascx voi può utilizzare il codice JavaScript/jQuery con i tag del server WebForms. Raccomando comunque di non utilizzare URL appena codificati in jQuery/AJAX
Se si posiziona tutto il codice JavaScript in un file separato e si fa riferimento a questo file utilizzando Url.Content nella pagina Master, Url.ResolveUrl non funzionerà all'interno del codice JavaScript. Qualcuno, per favore, correggimi se sbaglio su questo. –
Mi raccomando ancora di utilizzare il tag href di base nella pagina Master. quindi qualsiasi immagine o chiamata javascript si risolverà da questo URL. Questo ti permetterà di mettere le tue funzioni/chiamate javascript in un file js esterno.
<html> <head> <base href="http://www.mysite.com/virtual_dir1/"> <script src="location_of_js_file">
Ricordare la desinenza '/' nella base href.
Inoltre, rimuovere l'iniziale '/' e ogni volta che si esegue jQuery.load ('Affari/Tag'), verrà effettivamente da http://www.mysite.com/virtual_dir1/Business/Tags.
Mi piace molto questo approccio. Così pulito e richiede così poco sforzo. Grazie – lomaxx
Questo è sicuramente un approccio pragmatico al problema, ma l'utilizzo di ['base'] (http://www.w3.org/TR/REC-html40/struct/links.html#h-12.4) in questo modo è errato. L'HREF di base dovrebbe essere usato solo per risolvere gli URI relativi alla pagina corrente in cui ti trovi. Impostando 'base' in questo modo ** tutti ** gli URI relativi in questa pagina punteranno a' http: // www.mysite.com/virtual_dir1/'. – ahsteele
un paio di modi che facciamo questo nelle nostre applicazioni:
var applicationPath = '<%= Url.Content("~/") %>';
O
var applicationPath = '<%= Request.Url.Scheme %>://<%= Request.Url.Host %><%= Request.ApplicationPath %>/';
Abbiamo quindi utilizzare ApplicationPath come URL di base per tutti i nostri chiamate ajax.
- 1. URL minuscoli in ASP.NET MVC
- 2. Generazione di un URL azione in JavaScript per ASP.NET MVC
- 3. Riscrivendo gli URL in ASP.NET?
- 4. URL SEO con ASP.NET MVC
- 5. ASP.NET MVC: ActionLink vs url
- 6. ASP.NET MVC Visualizzazione URL predefinita
- 7. asp.net mvc dataannotation convalidare url
- 8. Asp.net MVC SEO Friendly URL
- 9. ASP.NET MVC URL errato in chiamate Ajax
- 10. Ritorna URL corrente in asp.net mvc
- 11. ASP.NET MVC JavaScript Routing
- 12. ASP.NET MVC Javascript ActionResult
- 13. URL per URL completo in asp.net MVC-3
- 14. best practice javascript per gli sviluppatori di asp.net mvc
- 15. ASP.NET MVC 3 HiddenFor Javascript
- 16. Javascript: trovare gli URL in un documento
- 17. Parametri URL infiniti per ASP.NET Percorso MVC
- 18. ASP.NET MVC routing/SEO friendly URL
- 19. ASP.NET MVC: routing url vs querystring
- 20. ASP.NET MVC ActionLink con LinkText = URL assoluto
- 21. ASP.NET MVC Url Route support (dot)
- 22. Javascript, CSS dinamicamente generato in ASP.NET MVC
- 23. errore JavaScript in Asp.Net MVC 4 Raggruppamento
- 24. ASP.NET MVC L'instradamento degli URL non mi dà abbastanza URL
- 25. immagini ASP.NET MVC e altri URL contenuti statici
- 26. È possibile localizzare un URL/routing in ASP.NET MVC?
- 27. Passando serie Javascript per ASP.NET MVC controller
- 28. Esiste una differenza tra Url.Content ("~/...") e "~ /" per gli URL in ASP.NET MVC?
- 29. Come aggiungere il titolo della pagina in url in asp.net mvc? (Generazione url)
- 30. Genera URL completo in MVC?
Ho provato questo metodo ma non riesco a ottenere ciò di cui ho bisogno ma penso di poter lavorare con esso.Sto ricevendo una stringa come questa "http: // mtsengv003 /" ma ne ho bisogno uno come questo "http: // mtsengv003/MVC /" Grazie –
Penso che sia meglio usare: var baseUrl = "<% = Richiesta .Url.GetLeftPart (UriPartial.Authority) + Request.ApplicationPath.TrimEnd ('/')%> "; –
@ eu-ge-ne: Grazie per averlo indicato. La mia memoria non è più quella di una volta. Il tuo codice è perfetto –