[英]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.