【问题标题】:Conditional output of form elements in a Razor conditional blockRazor 条件块中表单元素的条件输出
【发布时间】:2012-05-07 19:29:57
【问题描述】:

这行得通:

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

【问题讨论】:

  • 你想要的第二个是什么?缺少 span 标签?

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


【解决方案1】:

这个应该可以的...

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

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

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

【讨论】:

  • 分号可能不应该包含在内。
  • @AndrewBarber:你完全正确!在试图找到错误所在的位置时,像往常一样完全忽略了它们......呵呵 :)
猜你喜欢
  • 1970-01-01
  • 2018-05-12
  • 1970-01-01
  • 2013-06-14
  • 2011-04-27
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多