javascript - Use el archivo js separado y use los ayudantes de URL con ASP.NEt MVC 3 y Razor View Engine
asp.net-mvc asp.net-mvc-3 (6)
Hago una pregunta similar here y Darin Dimitrov
responde que no podemos usar la ayuda de Url como $.ajax({ url: ''@Url.Action("Index")'', . . .
en un archivo js separado, ¿cuál es su sugerencia? para usar Url helper en la página de visualización y pasarlo a javascript, no quiero usar el código duro de url, necesito encontrarlo con Url helper.
Eche un vistazo a la generación de archivos JavaScript externos con vistas parciales de Razor . En esta publicación del blog, describo cómo puede hacer uso de las vistas regulares de Razor y un filtro de acción personalizado para representar archivos de JavaScript externos que pueden tener un código de Razor.
La forma más sencilla es crear una variable global llamada algo y hacer referencia a ella en su JS externo.
var baseURL = ''@Url.Action("Index")'';
Dentro de tu JS externo
$.ajax({ url: baseURL + "Action"
No es necesario tener un campo oculto, incluso esto funciona también en el archivo .js externo.
var myUrl = / ControllerName / ActionName;
$.ajax({ url: myUrl , . .
Use un campo oculto para almacenar su url, luego use javascript para leer el campo oculto, luego use eso en su código. De esa manera puede mantener el archivo JS separado de la vista. Algo como esto:
//In Your View
@Html.Hidden("MyURL", Url.Action("Index"))
//In Your JS
var myUrl = $("#MyURL").val();
$.ajax({ url: myUrl , . . .
Utilicé un enfoque similar a raklos, pero estaba buscando obtener la ruta del directorio raíz en todos los lugares, así que seguí el código a continuación.
@Html.Hidden("AppUrl", Url.Content("~"))