我通常使用以下方法引用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 助手在 cshtml 中调用它,如下所示
<script src='@Html.RouteLink("maskedinput","jquery.maskedinput.js") ' type="text/javascript"></script>
我知道 RouteLink 返回一个锚标记,因此没有正确设置源以供 Jquery 加载。
要求:
- 是否有任何其他 Html 助手只能返回虚拟路径(或)
- 我需要用一个名称而不是一个路径来引用Jquery。路径应该在全局的某个地方声明,以便在全局文件可以解决目的。
请帮帮我。
我将此方法用于BundleCollection
,System.Web.Optimization
看到我的问题,但即使没有它,这仍然有效。
namespace PROJECT.Classes
{
public class JSBundles
{
public static string Test = "/scripts/test.js";
}
然后像这样使用它:
<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>
您可以使用流行且令人敬畏的RequireJS来使用javascript注入jquery(以及任何其他js依赖项),而不是手动提供它们
http://requirejs.org/docs/jquery.html 提供设置和使用说明