javascript asp.net-mvc asp.net-mvc-3 razor urlhelper

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.



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 , . .


Puedes usar RazorJS para ese propósito. Permite escribir Razor-Style C # o VB.NET dentro de tus archivos JavaScript. Hay una breve descripción disponible here .


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("~"))