我是ASP.Net / MVC的新手。我创建了一个我从模型中填充的视图。 我正在为模型中的每个项创建一个行,以显示模型项的属性/属性。
其中一名成员是bool,名字是Staged。在视图中我想将其显示为是(如果为true)或否则显示为否。用户只能阅读它,所以简单的文字是/否就足够了。
我在cshtml中使用以下代码
<td>
@Html.DisplayFor(modelItem => item.Staged)
</td>
然而,这会在地方显示一个复选框,如何将其显示为是/否?
谢谢,
答案 0 :(得分:14)
你可以使用这样的自定义html助手扩展方法:
@Html.YesNo(item.Staged)
以下是此代码:
public static MvcHtmlString YesNo(this HtmlHelper htmlHelper, bool yesNo)
{
var text = yesNo ? "Yes" : "No";
return new MvcHtmlString(text);
}
通过这种方式,您可以使用一行Razor代码在整个站点中重复使用它。
答案 1 :(得分:7)
使用Html.Raw并根据模型值true / false
有条件地渲染字符串 <td>
@Html.Raw((Model.Staged)?"Yes":"No")
</td>
答案 2 :(得分:3)
在模型中,您需要创建一个类似于此的新属性...
public string ItemStagedYesNo = (item.Staged) ? "Yes" : "No";
然后在视图中,执行
@Html.DisplayFor(modelItem => ItemStagedYesNo);
答案 3 :(得分:3)
更改
@Html.DisplayFor(modelItem => item.Staged)
到
@(item.Staged?"Yes":"No")
这是达到您要求的最简单方法。