我的Razor视图中有以下代码
@Html.LabelFor(t=>t.Name)
@Html.LabelFor(t=>t.Name)
@if (true)
{
@Html.LabelFor(t => t.Name)
@Html.LabelFor(t => t.Name)
}
这两个代码块生成不同的HTML。
<label for="Name">Name</label>
<label for="Name">Name</label>
<label for="Name">Name</label><label for="Name">Name</label>
这也以不同的方式显示(在Chrome和IE中),两者之间有差距,一个没有:
这是Razor / MVC中的错误吗?或者我不应该在if块中使用@Html帮助器吗?
更改为以下内容会使它们显示相同但不理想。
@Html.LabelFor(t=>t.Name)
@Html.LabelFor(t=>t.Name)
@if (true)
{
@Html.LabelFor(t => t.Name)@Html.Raw("\n")
@Html.LabelFor(t => t.Name)
}
将Html助手放在<div>
内可以解决问题。
@Html.LabelFor(t=>t.Name)
@Html.LabelFor(t=>t.Name)
@if (true)
{
<div>
@Html.LabelFor(t => t.Name)
@Html.LabelFor(t => t.Name)
</div>
}
答案 0 :(得分:3)
Razor抑制代码块中的空格。
因此,当您自己找到时,手动将某种空白字符写入输出将是模拟您在代码块之外编写的代码的唯一方法。