Estoy cargando un poco de contenido a través de jQuery.load ('/ Business/Tags'), que funciona bien cuando uso mi servidor web local. Pero cuando se usa iis, esto no se resuelve correctamente. He visto un par de formas diferentes de evitar esto, como ResolveUrl. ¿Cuál es la mejor manera de manejar URL de resolución en su javascript?ASP.NET MVC resolve urls en javascript
Respuesta
Me encontré con este problema exacto con mi JavaScript. Como mi JavaScript también estaba en un archivo separado que se incluyó en mi página maestra, no pude usar ResolveUrl en mi caso.
Así es como lo resolví en mi caso. Incluí el siguiente JavaScript en mi etiqueta de la cabeza en mi página maestra en la parte superior:
<script type="text/javascript">
var baseUrl = "<%= Request.Url.GetLeftPart(UriPartial.Authority) %>";
</script>
Soy la creación de una variable global que se puede acceder a todos los archivos de JavaScript llamada baseUrl.
Su código se convertiría entonces en:
jQuery.load(baseUrl + '/Business/Tags');
En cuanto a mí estoy usando ayudantes Url.Action/Url.RouteUrl con JavaScript/jQuery donde es posible:
$.load('<%= Url.Action("Tags", "Business") %>')
o
$.load('<%= Url.RouteUrl("BusinessTagsRoute") %>')
En otros casos que estoy usando ayudante ResolveUrl (de MVCContrib o su podría escribir su propio):
$.load('<%= Url.ResolveUrl("~/Business/Tags") %>')
Actualizado:
También es posible crear controlador especial para su JavaScript/jQuery con acciones, volviendo PartialViews con JavaScript:
public ActionResult YourJavaScript()
{
Response.ContentType = "application/x-javascript";
return PartialView("YourJavaScript");
}
Luego, en el que YourJavaScript.ascx puede usar código JavaScript/jQuery con etiquetas de servidor WebForms. Todavía recomiendo no usar Urls difícilmente codificadas en jQuery/AJAX
Si coloca todo su JavaScript en un archivo separado y luego referencia este archivo usando Url.Content en su página Maestra, Url.ResolveUrl no funcionará dentro de su JavaScript. Alguien por favor corrígeme si me equivoco sobre esto. –
Todavía recomiendo usar la etiqueta href base en su página maestra. por lo tanto, cualquier imagen o llamada de JavaScript se resolverá a partir de esta url. Esto le permitirá colocar sus funciones/llamadas de javascript en un archivo js externo.
<html> <head> <base href="http://www.mysite.com/virtual_dir1/"> <script src="location_of_js_file">
Recuerde la terminación '/' en la base href.
Además, elimine el '/' inicial y siempre que haga jQuery.load ('Business/Tags'), en realidad vendrá de http://www.mysite.com/virtual_dir1/Business/Tags.
Realmente me gusta este enfoque. Tan limpio y requiere tan poco esfuerzo. Gracias – lomaxx
Este es definitivamente un enfoque pragmático al problema, pero usar ['base'] (http://www.w3.org/TR/REC-html40/struct/links.html#h-12.4) de esta manera es incorrecto. Base HREF solo debe usarse para resolver los URI relativos a la página actual en la que se encuentra. Al establecer 'base' de esta manera ** todos los URI relativos ** en esta página apuntarán a' http: // www.misitio.com/virtual_dir1/'. – ahsteele
un par de maneras en que lo hacemos en nuestras aplicaciones:
var applicationPath = '<%= Url.Content("~/") %>';
O
var applicationPath = '<%= Request.Url.Scheme %>://<%= Request.Url.Host %><%= Request.ApplicationPath %>/';
A continuación, utilizamos ApplicationPath que la URL base para todas nuestras llamadas ajax.
- 1. asp.net mvc URLs multilenguaje/enrutamiento
- 2. ¿Cómo creo URLs de SEO amigable en ASP.Net-MVC
- 3. ASP.NET MVC JavaScript enrutamiento
- 4. ASP.NET MVC Javascript ActionResult
- 5. asp.net mvc C# javascript web.config
- 6. ASP.NET MVC 3 HiddenFor Javascript
- 7. ASP.NET MVC usando ViewData en javascript
- 8. ¿Cómo consumir URLs REST usando Spring MVC?
- 9. asp.net user control, getting htmlAnchor resolve to href = "#"
- 10. ASP.Net MVC, Presentar un formulario utilizando Javascript
- 11. gama Javascript para ASP.NET MVC controlador
- 12. ASP.NET MVC métodos de acción de JavaScript
- 13. cuándo utilizar knockout javascript con ASP.NET MVC
- 14. El enrutamiento de URL ASP.NET MVC no me da URLs bonitas
- 15. Almacenar Html.Raw() en una cadena en Javascript, ASP.NET MVC 3
- 16. ASP.NET MVC Enrutamiento Pregunta
- 17. Url.Content en ASP.net MVC 2.0
- 18. actualización automática en ASP.NET MVC
- 19. Genere un archivo javascript sobre la marcha en asp.net mvc
- 20. CSS y Javascript ruta relativa confusión en ASP.NET MVC
- 21. ¿Forma correcta de hacer referencia a Javascript en ASP.NET MVC?
- 22. Ejecutar Javascript dentro de una vista parcial en ASP.NET MVC
- 23. Generando una URL de acción en JavaScript para ASP.NET MVC
- 24. SEO URL con ASP.NET MVC
- 25. Unity IOC Buildup vs Resolve?
- 26. ¿Qué es ASP.Net MVC?
- 27. Opciones de compresión ASP.NET MVC en IIS6
- 28. Lesscss y ASP.NET MVC
- 29. ASP.NET MVC + Backbone.js, ¿tiene sentido esto? ¿ASP.NET MVC realmente necesario?
- 30. LinkButton en ASP.NET MVC
Intenté este método pero no estoy obteniendo todo lo que necesito, pero creo que puedo trabajar con él.Recibo una cadena como esta "http: // mtsengv003 /" pero necesito una como esta "http: // mtsengv003/MVC /" Gracias –
Creo que es mejor usar: var baseUrl = "<% = Solicitud .Url.GetLeftPart (UriPartial.Authority) + Request.ApplicationPath.TrimEnd ('/')%> "; –
@ eu-ge-ne: Gracias por señalar eso. Mi memoria no es lo que solía ser. Tu código es perfecto –