在我的注册表单中,我使用asp.net unobtrusive验证来检查用户名是否存在。如果发现冲突,我的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 />
类似的方式中断。我认为编码应该归咎于此 - 任何人都能解释为什么吗?这个问题有什么解决方案吗?
提前谢谢。
答案 0 :(得分:0)
如果它们在实际页面上显示换行符,那么我要做的第一件事是检查<strong/>
标记并查看是否有任何CSS将其定义为display:block;
或覆盖{{1属性。
如果您担心DOM浏览器的输出......这就是Chrome显示DOM树的方式。这三行是每个单独的节点(2个文本节点和一个元素节点),因此它们被视为相等。如果你检查我答案的第一段,你会看到同样的事情。
答案 1 :(得分:0)
如果没有尝试过,你可以尝试用......替换字符串中的换行符吗?
@Html.ValidationMessageFor(m => m.Username).ToString().Replace(Environment.NewLine, "");
感觉非常奇怪,因为它只是在Chrome中,仔细检查CSS规则。或者只是在p-tag中包围验证消息?
答案 2 :(得分:0)
尝试用css调整。
\u003cdiv\u003e
This is already in use. How about \u003cstrong\u003efoo123\u003c/strong\u003e?
\u003c/div\u003e?
我认为这是由于一些填充问题。上传生成的页面Html代码。