5

Visual Studio 2012を使用して画像の正しいパスを取得できるように、ページにいくつかのインラインサーバータグを配置しようとしています。

私はこのようにやっています:

<style type="text/css">
.someclass
{
    background-image: url(<%=Url.Content("~/Content/Images/messageIcon.gif")%>);
}
</style>

問題は、これが書き込まれると、スタイルセクション全体がVS2012エディターでのカラーフォーマットを失うことです。色とインデントを失わないように、これを行う別の方法(またはVS2012のオプション)はありますか?

4

2 に答える 2

3

これは、css スタイルの Visual Studio の強調表示の問題または機能です。既知のサーバー相対 URL を使用してみてください。

サーバー側のコードを CSS スタイルに挿入する必要がある場合はstyle、html-markup で属性を使用できます。例えば:

<div class="beautiful-button" style="background-image: url('<%=Url.Content("~/Content/Images/messageIcon.gif")%>')">
...
</div>

このコードが気に入らない場合、または別の場所で複数回使用する必要がある場合、最善の方法は、パブリック プロパティ URL を使用して独自のサーバー側コントロールを作成することです (たとえば)。最終的には次のようになります。

<asp:MyOwnControl runat="server" class="beautiful-button" URL="~/Content/Images/messageIcon.gif" />
于 2012-09-25T09:27:41.417 に答える
3

Visual Studio が書式設定を失っている理由は、以下のように css とサーバー側コードを混在させているためです。

<style type="text/css"> 
.someclass  
{     
    background-image: url(<%=Url.Content("~/Content/Images/messageIcon.gif")%>);
}    
</style> 

CSS をコードから分離する必要があります。

画像パスはcssファイルの場所からの相対パスなので、以下のようなcssが正しいので、Url.Content(~)で計算したアプリケーションパスを使う必要はありません

.someclass  
{     
     background-image: url(../Images/messageIcon.gif); 
}    
于 2012-09-25T15:43:39.060 に答える