我在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>
在 Chrome :
中<p><unknow man></p>
<p><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的区别,以及为什么这不像第一个例子中编码的那样工作?
答案 0 :(得分:1)
<p>@((@Model == null) ? @Html.Raw("<unknow man>") : @Model.ClientName)</p>
<p>
@if (@Model == null)
{
<text><unknow man></text>
}
else
{
@Model.ClientName;
}
</p>