私は通常、次を使用して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をロードするために正しく設定されていません。
要件:
- 仮想のみを返すことができる他のHtmlヘルパーはありますか パス(または)
- パスではなく名前で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 セットアップと使用手順を提供します