簡體   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