我想在Razor视图中使用IF ELSE语句。是否可以使用IF(html.helper)然后做一些事情?或任何建议?
{{1}}
答案 0 :(得分:5)
正如我在评论中提到的,您可以直接测试m[i].Type
的值:
@if (m[i].Type == "Info_Text") {
<td></td>
} else {
<td>@Html.EditorFor(m => m[i].Answer)</td>
}
您不会针对DisplayFor
的值进行测试的原因是它返回MvcHtmlString
,而不仅仅是string
或int
这样的简单类型。如果你有一天发现需要与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>
}