[英]Single quote(') and double quote (") strange behavior in ASP.NET
我对引用用法有一些疑问。 例如,当我在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:我已经阅读过单引号和双引号之间的区别(从这里开始 ),但这不适用于此处。
首先,但不相关的是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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.