2011-01-27 10 views
12

私の参照された.jsファイルを「マスター」のcshtmlファイルに入れて、「子」のcshtmlファイルを取得する方法を説明します。Razor View Engineの子ページのJavascript Intellisense

私はマスターファイル内でこのようなものを持っているので、の.jsファイルは常に参照されます(実際、私はマスターファイル内のjsインテリセンスを取得する):

if (false) 
{ 
    <script type="text/javascript" src="../scripts/jquery.js"></script> 
} 

しかし、私はmaster.cshtmlを参照するとき次のような「子」ページのファイル:

@{ 
    Layout = "~/Views/Shared/master.cshtml"; 
} 

私はjavascript intellisenseを取得していません。私本当には、各チャイルドページの先頭にスクリプトタグを置く必要はありません、たくさんのスクリプトタグがあり、多くの子ページがあります!

答えて

1

私はこれにも解決策を見つけることを望んでいました。

私が見つけた最良の選択肢は、常に外部のjsファイルを使用することです。上にMaster.jsのようなファイルを作成し、参照パスを使用します。

/// <reference path="../../Scripts/jquery-1.4.4.js"/> 

次に、あなたはインテリセンスを持つことができます。新しい外部ファイルの前にjqueryファイルをインクルードする必要があります。

5

Razorエディタは、現在どのスクリプトファイルが使用中であるかを推測できません(これは、Razorレイアウトページがコードで設定され、エディタがビューページを実行しないためです)。残念ながら、JavaScript IntelliSenseをビューページで使用するには、これらのスクリプトタグを含める必要があります。

0

ですから、トリックは動作しない理由、これが役に立つかもしれません把握に時間を失うことはありません:

相対パスを使用している場合、これはパスが同じに指している場合にのみ動作するようです応用。絶対パスは、すべての場合に明らかに機能します。

reference path="../../Scripts/jquery-1.4.4.js" 

上記のスクリプトファイルは、同じアプリケーション内にある限り動作します。

reference path="http://localhost/Scripts/jquery-1.4.4.js" 

いずれの場合でも上記のように動作します。

関連する問題