3

私は通常、次を使用してjQueryを参照します。

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

多くのページで同じ Jquery を参照しています。静的コンテンツ (名前またはバージョン番号) を変更するには、変更を吸収するためにすべてのビューを更新する必要があります。これを解決するために、以下のように Jquery ファイルの Global.asax にルートを作成してみました。

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 タグを返すことはわかっているため、Jquery がロードするように Source が正しく設定されていません。

要件:

  1. 仮想パスのみを返すことができる他の Html ヘルパーはありますか (または)
  2. パスではなく名前で Jquery を参照する必要があります。グローバル ファイルを 1 回変更するだけで目的を解決できるように、パスはグローバルな場所で宣言する必要があります。

お願い助けて。

4

2 に答える 2

2

私はこの方法を私の質問BundleCollectionSystem.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 に答える