【发布时间】:2016-01-26 03:17:06
【问题描述】:
我的 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>
}
【问题讨论】:
标签: c# html asp.net-mvc razor