Edw*_*d.K 5 asp.net-mvc razor asp.net-mvc-4
我想在Razor视图中使用IF ELSE语句.是否可以使用IF(html.helper)然后做一些事情?还是有什么建议吗?
@using (Html.BeginForm())
{
<table>
@for (int i = 0; i < Model.Count; i++)
{
<tr>
<td>
@Html.HiddenFor(m => m[i].Question_ID)
@Html.HiddenFor(m => m[i].Type)
@Html.DisplayFor(m => m[i].Question)
</td>
</tr>
<tr>
@if(@Html.DisplayFor(m=> m[i].Type =="Info_Text") **
{
<td>
//DO NOTHING
</td>
}
else
{
<td>
@Html.EditorFor(m => m[i].Answer)
</td>
}
</tr>
}
</table>
Run Code Online (Sandbox Code Playgroud)
正如我在评论中提到的,您可以m[i].Type直接测试其值:
@if (m[i].Type == "Info_Text") {
<td></td>
} else {
<td>@Html.EditorFor(m => m[i].Answer)</td>
}
Run Code Online (Sandbox Code Playgroud)
你不会测试DisplayFor它的价值的原因是它返回一个MvcHtmlString,而不仅仅是一个简单的类型,如string或int.你可以做一些这样的事情,如果你发现需要比较DisplayFor一天(并希望这使得它更有意义):
@if (Html.DisplayFor(m => m[i].Type) == new MvcHtmlString("Info_Text"))
Run Code Online (Sandbox Code Playgroud)
由于您正在学习MVC,您可能还对如何自定义EditorFor帮助程序以自动执行此操作感兴趣:http://www.hanselman.com/blog/ASPNETMVCDisplayTemplateAndEditorTemplatesForEntityFrameworkDbGeographySpatialTypes.aspx
| 归档时间: |
|
| 查看次数: |
6476 次 |
| 最近记录: |