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