繁体   English   中英

ASP.NET中的单引号(')和双引号(“)奇怪的行为

[英]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没有按预期突出显示它(我使用的是黑色背景,服务器标签<% %>在黄色背景上是白色的,标签之间的文本是白色的)。

我的问题是:

  1. 为什么在加载脚本时使用双引号,而不是在background-image元素中加载图像时使用。

  2. 为什么视觉工作室突出显示是因为它不是服务器代码?

  3. 在上面的示例中,我们应该使用单引号而不是双引号的其他用例是什么?(下面链接中指定的字符串格式除外)。 一个,两个例子就足够了。

PS:我已经阅读过单引号和双引号之间的区别(从这里开始 ),但这不适用于此处。

首先,但不相关的是nav语法缺少style属性。

其次,它似乎是样式属性中的ASP.NET问题。 它作为完整的属性值(如link标记上所示)非常有效。 :字符可能是罪魁祸首。

你可以做什么:

首先,没有必要将Page.ResolveClientUrllink标记一起使用。 您只能使用波形路径,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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM