Razor 条件块中表单元素的条件输出

本文关键字:条件 输出 元素 Razor 表单 | 更新日期: 2023-09-27 18:32:27

这有效:

@if (ViewBag.SkipPhone == null)
{
     <span>@Html.LabelFor(model => model.Phone)</span>
     <span>@Html.TextBoxFor(model => model.Phone)</span>
     <span>@Html.ValidationMessageFor(model => model.Phone)</span>
}

但我想做这样的事情:

@if (ViewBag.SkipPhone == null)
{
                Html.LabelFor(model => model.Phone);
                Html.TextBoxFor(model => model.Phone);
                Html.ValidationMessageFor(model => model.Phone);                
}

我理解 HTML 帮助程序输出字符串,这就是第二个不起作用的原因。 但是有没有合适的方法来做这种事情呢?

Razor 条件块中表单元素的条件输出

这个应该可以工作...

@if (ViewBag.SkipPhone == null)
{
     @Html.LabelFor(model => model.Phone)
     @Html.TextBoxFor(model => model.Phone)
     @Html.ValidationMessageFor(model => model.Phone)              
}

您在每行之前都缺少@,在这种情况下,您正在添加分号(不需要它们),因为安德鲁·巴伯(Andrew Barber)在下面评论...

我的观点中有这样的代码,它们确实按预期工作......