/ / HTMLヘルパーを使用したcshtmlでのjQueryの参照-jquery、model-view-controller、html-helper、global-asax

HTMLヘルパーを使用してcshtmlでjQueryを参照する - 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 for 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がAnchorタグを返すことを知っているので、SourceはJqueryをロードするために正しく設定されていません。

要件:

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

お願い助けて。

回答:

回答№1は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>

回答№2の場合は1

人気のある素晴らしいRequireJSを使用して、手動で提供する代わりにjavascriptを使用してjquery(およびその他のjsの依存関係)を注入できます。

http://requirejs.org/docs/jquery.html セットアップと使用手順を提供します