2009-07-07 3 views
2

私は外部スタイルシートを指定したいViewPageを持っています。スタイルシートは、ViewPageの要素にのみ適用されます。ASP.NET MVCでの外部CSSの改善されたアプローチ?

<asp:Content ID="cssLinkContent" ContentPlaceHolderID="CssLinkContent" runat="server"> 
    <link rel="stylesheet" type="text/css" href="<%= Url.Content("~/Content/custom.css")%>" /> 
</asp:Content> 

これは、実行時に正常に動作しますが、エラー「クラスまたはのCssClass値が定義されていません」Visual Studioのエディタで表示されます。いくつかの失敗した試行の後、私は次のように「Url.Content」を使用して定住しました。これは、 "Url.Content"を使用するとVisual Studioが外部スタイルシートを解決できないためです。

ランタイムでURLを正常に解決するソリューションに関する考えは、Visual Studioを幸せにしますか?

ありがとうございます。

答えて

7

私はVisual Studioを無視します。それは素晴らしいツールですが、時には難しいこともあります。 エラーまたは警告と表示されますか?私はそれがすごい答えだと知っていますが、それは私がしていることです。

jQueryの飼料としても使われているスタイルについては不平を言ってもらえませんか?次のように

余談として

、あなたは、マークアップとURL解析の振る舞いをカプセル化するHtml.Stylesheetヘルパーを書きたいかもしれません:

public static string Stylesheet(this HtmlHelper Html, string url) { return Html.Stylesheet(url, null); } 
public static string Stylesheet(this HtmlHelper Html, string url, string media) 
{ 
    UrlHelper Url = new UrlHelper(new RequestContext(Html.ViewContext.HttpContext, Html.ViewContext.RouteData)); 
    string html = "<link type=\"text/css\" rel=\"stylesheet\" href=\"{0}\" {1}/>"; 
    if (!string.IsNullOrEmpty(media)) 
     media = "media=\"" + media + "\""; 

    return string.Format(html, Url.Content(url), media); 
} 

この中で、その結果、よりクリーン、マークアップ:

<%= Html.Stylesheet("~/Content/custom.css") %> 
1

あなたはそれが奇妙なソリューションですが、それが動作

<link rel="stylesheet" type="text/css" 
    href="<%= ResolveUrl("~/Content/custom.css")%>" /> 
+0

私はこれがマークした理由はわかりません。 VS警告なしで、余分な(不要な)コードなしで動作します。また、画像やjsファイルでも動作します。 – blu

+0

-1:はい、IDEにCSSクラスの警告が残っています。 –

3

を試してみました:

<!-- next line only for VS --> 
<% if(false) { %><script src="../../Content/custom.css" type="text/javascript"></script><% } %> 
<link rel="stylesheet" type="text/css" href="<%= Url.Content("~/Content/custom.css")%>" /> 

また、あなたのビューでjQueryのインテリセンスのために、このようなものを使用することができます。

<% if(false) { %><script src="../../static/jquery/jquery-1.3.2-vsdoc2.js" type="text/javascript"></script><% } %> 
+0

ありがとうございます。これは機能します。しかし、Microsoft Visual Studioチームは、このハッカーが必要であることを知っておくべきであり、問​​題を解決するよう努めなければなりません。 –

関連する問題