繁体   English   中英

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

[英]Use Separate js File And use Url Helpers in it with ASP.NEt MVC 3 and Razor View Engine

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

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

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

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

    $.ajax({ url: myUrl , . . .

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

var baseURL = '@Url.Action("Index")';

在你的外部JS

$.ajax({ url: baseURL + "Action"

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

不需要隐藏字段,即使这在外部.js文件中也有效。

var myUrl = / ControllerName / ActionName;

$.ajax({ url: myUrl , . . 

看看使用部分Razor视图生成外部JavaScript文件 在这篇博客文章中,我将介绍如何使用常规Razor视图和自定义操作过滤器来呈现可能包含Razor代码的外部JavaScript文件。

我对raklos使用了类似的方法,但是想要在所有地方获得根目录路径,所以我选择了下面的代码。

@Html.Hidden("AppUrl", Url.Content("~"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM