我对报价用法有一些疑问。 例如,当我在asp双引号中加载脚本或css工作正常时,我就像使用它一样:
<link href="<%= Page.ResolveClientUrl("~/Styles/Site.css") %>" rel="stylesheet" type="text/css" />
但是当我尝试在background-image
上使用同样的东西时,它没有按预期工作。给我一个错误:
功能参数未公开,')'预期
background-image: url("<%= Page.ResolveClientUrl("~/Content/image.jpg")%>");
此外,当我尝试使用上面指定的代码时,visual studio会正确地突出显示Page.ResolveClientUrl
。
我使用单引号(`)修复了上述错误,如:
background-image: url('<%= Page.ResolveClientUrl("~/Content/image.jpg")%>')
它运行正常,但是visual studio没有按预期突出显示它(我使用黑色背景,服务器标签<% %>
在黄色背景上是白色的,标签之间的文本是白色的)。
我的问题是:
为什么在加载脚本时使用双引号,但在background-image
元素中加载图像时则不行。?
视觉工作室为什么要突出显示,因为它不是服务器代码?
在上面的示例中,我们应该使用单引号而不是双引号的其他用例是什么?(下面链接中指定的字符串格式除外)。一两个例子就足够了。
PS:我已经阅读过单引号和双引号之间的区别(来自here),但这不适用于此。
答案 0 :(得分:1)
首先,但不相关,nav
语法缺少style
属性。
其次,它似乎是样式属性中的ASP.NET问题。它作为完整的属性值(如link
标记上所示)非常有效。 :
字符可能是罪魁祸首。
你能做什么:
首先,不需要将Page.ResolveClientUrl
与link
标记一起使用。您只能使用波形路径,ASP.NET将解析实际路径。
自:
<link href="<%= Page.ResolveClientUrl("~/Styles/Site.css") %>" rel="stylesheet" type="text/css" />
要:
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
对于nav
标记,请尝试使用类,并在CSS端使用相对路径:
HTML:
<nav class="nav-img" />
CSS:
.nav-img {
background-image: url(../Content/image.jpg);
}