[英]How to prevent whitespace from being trimmed?
請查看以下ASP.NET代碼:
<%@ Page Language="C#" %>
<!doctype html>
<html>
<head>
<title></title>
</head>
<body>
<p><%Response.Write("This is sentence 1.");%> <%Response.Write("This is sentence 2.");%></p>
</body>
</html>
我希望它通過將兩個字符串連接在一起來構建一個短段,它們之間有一個空格(請注意<%Response.Write("This is sentence 1.");%>
之間的白色字符<%Response.Write("This is sentence 1.");%>
和<%Response.Write("This is sentence 2.");%>
)。 但是,我從IIS 7.5獲得的輸出HTML是:
<!doctype html>
<html>
<head>
<title></title>
</head>
<body>
<p>This is sentence 1.This is sentence 2.</p>
</body>
</html>
兩個句子之間不包含空格。 有趣的是,如果我將空格放在第二句中:
<%@ Page Language="C#" %>
<!doctype html>
<html>
<head>
<title></title>
</head>
<body>
<p><%Response.Write("This is sentence 1.");%><%Response.Write(" This is sentence 2.");%></p>
</body>
</html>
然后它繼續到HTML。 但是我希望白色空間在構建組合的代碼中,而不是在它工作的數據中,因為我不知道,當我寫單個句子時,哪些將進入段落或什么訂購。
這是預期的行為,還是我做錯了什么?
更新:
VDWWD指出了一個有趣的評論; 如果我使用<%="..."%>
而不是<%Response.Write("...");%>
確實將空格繼承到HTML。 但這讓我更加抓狂了,因為這適用於上面發布的簡化測試用例,但不是我的實際用例,看起來更像是這樣:
...
<p><%=TextoWeb("Ponencias", "QuieresSubirTuPonencia?")%><%
var InicioPonencias = Sesión.ElementoTimelinePorNombre("INICIO PONENCIAS");
if (DateTime.Today < InicioPonencias.Fecha) {
%> <%=TextoWeb("Ponencias", "TextoAntesAperturaPonencias", InicioPonencias.Fecha.ToLongDateHtml(Sesión.Cultura))%><%
}
%></p>
...
請原諒西班牙語和非標准擴展名。 函數TextoWeb
根據正在構建的頁面的語言按類別和名稱檢索一些本地化文本, Sesión.ElementoTimelinePorNombre
按名稱檢索一些時間軸項目.ToLongDateHtml(System.Globalization.CultureInfo)
執行某些語言特定的日期高級格式化添加序數指標之類的東西。 此特定代碼段的目的是向現有段落添加句子,但僅限於當前日期早於特定日期。
問題是我使用<%=(...)%>
而不是<%Response.Write(...);%>
但是沒有將空格帶到HTML上。
您可以使用HTML實體是 
對於一個普通的空間,或者更難忘的
如果需要,可以獲得不間斷的空間。
我不知道剝離背后的確切機制,但很可能它與編譯cshtml的順序有關。 在填充之前,引擎從空標記中剝離空白標記( <p> </p>
將是預期的行為。
不要使用Response.Write。 然后空間就在那里。
<%= "This is sentence 1." %> <%= "This is sentence 2." %>
更新
您可能沒有獲得空格,因為您在內聯代碼之間拆分了<% %>
。 編譯器使它成為一行。 嘗試在代碼后面執行if語句以獲得更清晰的aspx。 或者你是一個三元運營商,那樣也有一個空間。
<p><%=TextoWeb("Ponencias", "QuieresSubirTuPonencia?YYY")%> <%= DateTime.Today < DateTime.Now ? TextoWeb("xxxPonencias", "QuieresSubirTuPonencia?YYY") : "" %></p>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.