使用HTML帮助程序在cshtml中引用jQuery

时间:2012-12-19 14:12:12

标签: jquery model-view-controller html-helper global-asax

我通常使用:

来引用jQuery
<script src='@(Url.Content("~/JavaScript/jquery.maskedinput-1.2.2.js"))' type="text/javascript"></script>

我在很多页面中引用相同的Jquery。对静态内容(名称或版本号)的任何更改都要求更新所有视图以吸收更改。为了解决这个问题,我尝试在Global.asax中为Jquery文件创建路由,如下所示

routes.MapRoute("jquery.maskedinput.js", "Javascript/jquery.maskedinput-1.2.2.js");

我尝试使用Html Helper(如下面的

)在cshtml中调用它
 <script src='@Html.RouteLink("maskedinput","jquery.maskedinput.js") ' type="text/javascript"></script>

我知道RouteLink会返回一个Anchor标记,因此没有正确设置Source以便加载Jquery。

要求:

  1. 是否有任何其他Html帮助程序只能返回虚拟 路径(或)
  2. 我需要使用不带路径的名称来引用Jquery。路径 应该在全球范围内声明,以便在...中进行单一更改 全局文件可以解决目的。
  3. 请帮帮我。

2 个答案:

答案 0 :(得分:2)

我对BundleCollection System.Web.Optimization namespace PROJECT.Classes { public class JSBundles { public static string Test = "/scripts/test.js"; } 使用此方法,请参阅my question,但这仍然有效。

<script src='@(JSBundles.Test)' type="text/javascript"></script>

然后像这样使用它:

<script src='/scripts/test.js' type="text/javascript"></script>

呈现

PROJECT.Classes

请注意,这需要您在视图中引用web.config或您放置它的任何位置。我在视图文件夹的.... <add namespace="PROJECT.Classes" /> </namespaces> </pages> </system.web.webPages.razor> 中进行了设置。

{{1}}

答案 1 :(得分:1)

你可以使用流行的和令人敬畏的RequireJS来使用javascript注入jquery(以及任何其他js dependancies)而不是手动提供它们

http://requirejs.org/docs/jquery.html提供了设置&amp;使用说明