在ASP.Net MVC的视图中显示是/否而不是复选框

时间:2013-11-28 16:22:26

标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我是ASP.Net / MVC的新手。我创建了一个我从模型中填充的视图。 我正在为模型中的每个项创建一个行,以显示模型项的属性/属性。

其中一名成员是bool,名字是Staged。在视图中我想将其显示为是(如果为true)或否则显示为否。用户只能阅读它,所以简单的文字是/否就足够了。

我在cshtml中使用以下代码

    <td>
        @Html.DisplayFor(modelItem => item.Staged)         
   </td>

然而,这会在地方显示一个复选框,如何将其显示为是/否?

谢谢,

4 个答案:

答案 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")         

这是达到您要求的最简单方法。