ビューにスクリプトを追加するには、通常、次のような作業が必要です。
<script src="../../Scripts/jquery-1.3.1.min.js" type="text/javascript"></script>
残念ながら、アプリが IIS 6 の仮想ディレクトリにデプロイされている場合、これは機能しません。
仮想ディレクトリにアプリを展開する機能を失うことなく、これを回避して IntelliSense を機能させる方法はありますか?
ビューにスクリプトを追加するには、通常、次のような作業が必要です。
<script src="../../Scripts/jquery-1.3.1.min.js" type="text/javascript"></script>
残念ながら、アプリが IIS 6 の仮想ディレクトリにデプロイされている場合、これは機能しません。
仮想ディレクトリにアプリを展開する機能を失うことなく、これを回避して IntelliSense を機能させる方法はありますか?
展開コードの場合、Google ajax API を使用して JQuery をロードできます。google CDNを利用することでページの読み込み時間が短縮されるのでおすすめです。
インテリセンスを取得するには、これをページに追加します
<% if(false){ %>
<script src="../../Scripts/jquery-1.3.1.min.js" type="text/javascript"></script>
<%}%>
これは if(false) 内にあるため出力されませんが、インテリセンスはそれを認識します
Visual WebDeveloperTeamブログのJScriptIntelliSenseFAQを確認してください。コメントはまた、Srullyのトリックを参照しています。if(false)
私は次のようなものを使用します:
<script src="<%= ResolveUrl("~/Content/jquery-1.2.6.js") %>" type="text/javascript"></script>
<%--<script src="../../Content/jquery-1.2.6.js" type="text/javascript"></script>--%>
次に、インテリセンスを使用する場合は、2番目の参照のコメントを解除する必要があります。それは迷惑ですが、私が遭遇した唯一の回避策です。
VS2010 では、仮想フォルダー/ディレクトリ内の "*vsdoc.js ファイルを参照し、CDN を使用せずに Intellisense をビューで適切に動作させる 1 つの方法は、単にアドレスで localhost を使用することです。仮想ディレクトリは、スクリプトを集中化するときに不可欠です。複数の Web アプリケーションのコンテンツ ファイル. 以下の例では、IIS 7.5 で "Shared" 仮想ディレクトリを作成しました. これが誰かの役に立てば幸いです.
@if (false)
{
<script src="http://localhost/Shared/jQuery/js/jquery-1.7.2-vsdoc.js" type="text/javascript"></script>
}
HtmlHelper 拡張機能を作成しました (PathReference は ReSharper の JetBrains.Annotations 属性であり、省略できます):
public static class HtmlHelperExtensions
{
public static MvcHtmlString Script(this HtmlHelper html, [PathReference]string scriptFile)
{
var filePath = VirtualPathUtility.ToAbsolute(scriptFile);
return new MvcHtmlString("<script type=\"text/javascript\" src=\"" + filePath + "\"></script>");
}
}
次に、マスターページでこれを行います
<%
if (false)
{
%>
<script src="../../Scripts/jquery-ui-1.8.9.custom.min.js" type="text/javascript"></script>
<%
}
%>
<%:Html.Script("~/Scripts/jquery-ui-1.8.9.custom.min.js")%>
これで、インテリセンスと正しいランタイム参照の両方が得られました。
(トリックをしてくれたSrulyに感謝しますif(false)
)