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 Highlight 问题或功能。尝试使用已知的服务器相对 URL。

如果您需要在 css 样式中插入服务器端代码,您可以使用stylehtml-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 回答