簡體   English   中英

HTML編碼導致Chrome中出現新行

[英]Html Encoding causing new lines in Chrome

在我的注冊表單中,我正在使用asp.net非侵入式驗證來檢查用戶名是否存在。 如果發現沖突,我的JsonResult方法將返回以下內容:

This is already in use. How about \u003cstrong\u003efoo123\u003c/strong\u003e?

我使用Microsoft的非侵入式驗證在我的視圖中顯示此內容:

@Html.ValidationMessageFor(m => m.Username)

這會使它在頁面源中顯示如下:

This is already in use. How about
<strong>foo123</strong>
?

如您所見,文本分為三行。 在Firefox中這不是問題,但是在Chrome中,這些新行導致顯示的文本以與<br />類似的方式中斷。 我相信應該為此負責編碼-有人可以解釋為什么嗎? 這個問題有解決方案嗎?

先感謝您。

如果它們在實際頁面上顯示為帶有換行符,那么我要做的第一件事就是檢查<strong/>標記,看看是否有任何CSS將其定義為display:block; 或覆蓋white-space屬性。

如果您擔心DOM資源管理器的輸出...這就是Chrome顯示DOM樹的方式。 這三行分別是單獨的節點(2個文本節點和1個元素節點),因此將它們視為相等。 如果您查看我的答案的第一段,您將看到相同的內容。

如果沒有嘗試過,您可以嘗試用...什么代替字符串中的換行符?

@Html.ValidationMessageFor(m => m.Username).ToString().Replace(Environment.NewLine, "");

確實很奇怪,但這可能是問題所在,因為它只是在Chrome中,請仔細檢查CSS規則。 還是僅將驗證消息括在p標簽中?

嘗試使用CSS進行調整。

 \u003cdiv\u003e 
  This is already in use. How about \u003cstrong\u003efoo123\u003c/strong\u003e?
\u003c/div\u003e?

我認為這是由於某些填充問題引起的。 上載頁面的生成的HTML代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM