如果用剃刀视图中的html助手?

时间:2015-06-01 02:41:16

标签: asp.net-mvc asp.net-mvc-4 razor

我想在Razor视图中使用IF ELSE语句。是否可以使用IF(html.helper)然后做一些事情?或任何建议?

{{1}}

2 个答案:

答案 0 :(得分:5)

正如我在评论中提到的,您可以直接测试m[i].Type的值:

@if (m[i].Type == "Info_Text") {
  <td></td>
} else {
  <td>@Html.EditorFor(m => m[i].Answer)</td>
}

您不会针对DisplayFor的值进行测试的原因是它返回MvcHtmlString,而不仅仅是stringint这样的简单类型。如果你有一天发现需要与DisplayFor进行比较,那么可以做这样的事情(希望这会让一切变得更有意义):

@if (Html.DisplayFor(m => m[i].Type) == new MvcHtmlString("Info_Text"))

由于您正在学习MVC,您可能还对如何自定义EditorFor助手以自动执行此操作感兴趣:http://www.hanselman.com/blog/ASPNETMVCDisplayTemplateAndEditorTemplatesForEntityFrameworkDbGeographySpatialTypes.aspx

答案 1 :(得分:1)

为什么必须使用DisplayFor?你有什么特别的理由吗?

如果你使用

怎么样?
if(Model[i].Type =="Info_Text")
{
<td>
    //DO NOTHING
</td>
}