3

我通常使用以下方法引用 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。该路径应在全局某处声明,以便全局文件中的单个更改可以解决该目的。

请帮帮我。

4

2 回答 2

2

我使用这种方法来查看我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>
于 2012-12-19T14:43:42.407 回答
1

您可以使用流行且很棒的 RequireJS 来使用 javascript 注入 jquery(和任何其他 js 依赖项),而不是手动提供它们

http://requirejs.org/docs/jquery.html提供设置和使用说明

于 2012-12-19T14:17:58.103 回答