使用单独的js文件并使用ASP.NEt MVC 3和Razor View Engine中的Url Helpers

Sae*_*eid 17 javascript asp.net-mvc urlhelper razor asp.net-mvc-3

在这里问一个类似的问题并Darin Dimitrov回答我们不能像$.ajax({ url: '@Url.Action("Index")', . . .在单独的js文件中那样使用Url帮助器,那么你有什么建议在视图页面中使用Url helper并将其传递给javascript,我不想使用硬代码网址,我需要用Url帮助器找到它.

rak*_*los 32

使用隐藏字段存储您的网址,然后使用javascript读取隐藏字段,然后在您的代码中使用它.这样,您可以将JS文件与视图分开.像这样的东西:

//In Your View
    @Html.Hidden("MyURL", Url.Action("Index"))

//In Your JS
    var myUrl = $("#MyURL").val();

    $.ajax({ url: myUrl , . . .
Run Code Online (Sandbox Code Playgroud)

  • @Mosh网页中的所有内容都可以被所谓的黑客修改,包括运行之前的JavaScript文件.你无法阻止这种情况(即使加密).唯一一次这是一个问题是黑客是否可以为其他人修改那些隐藏字段的值_. (4认同)

Sim*_*röm 8

最简单的方法是创建一个名为something的全局变量,并在外部JS中引用它

var baseURL = '@Url.Action("Index")';
Run Code Online (Sandbox Code Playgroud)

在你的外部JS

$.ajax({ url: baseURL + "Action"
Run Code Online (Sandbox Code Playgroud)


tpe*_*zek 5

您可以将RazorJS用于此目的.它允许在JavaScript文件中编写Razor-Style C#或VB.NET.有一个可用的简短说明这里.