我在 MVC4 示例项目的剃刀视图中有以下示例代码:
<p>@((@Model == null) ? "<unknow man>" : @Model.ClientName)</p>
<p>
@if (@Model == null)
{
@Html.Encode("<unknow man>")
}
else
{
@Model.ClientName;
}
</p>
输出对我来说有点奇怪......
在Internet Explorer中,我看到:
<p><unknow man></p>
<p>&lt;unknow man&gt;</p>
在铬:
<p><unknow man></p>
<p>&lt;unknow man></p>
最令人难以置信的是(对我来说)最终我得到了相同的视觉输出:
<unknow man>
<unknow man>
但是,我想在 HTML 中显示这个:
<p><unknow man></p>
<p><unknow man></p>
这个给用户:
<unknow man>
<unknow man>
附言
我终于找到了一个解决方案来正确显示字符串,就像这样
@if (@Model == null)
{
@("<unknow man>")
}
但是谁能解释一下浏览器中 HTML.Encode 的区别,为什么这不像第一个示例中的代码那样工作?