繁体   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