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

时间:2012-04-27 02:31:14

标签: c# asp.net-mvc razor syntax conditional-statements

这有效:

@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帮助器输出字符串,这就是为什么第二个不起作用的原因。但有没有正确的方法来做这种事情?

1 个答案:

答案 0 :(得分:2)

这个应该有用......

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

你在每一行之前都缺少@,你在这种情况下添加分号(不需要它们),正如Andrew Barber评论的那样...

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