MVC模型布尔显示是或否

Mar*_*oli 32 c# asp.net asp.net-mvc razor asp.net-mvc-4

我在mvc 4实体框架4.5中的模型中有一个布尔字段

我想在我的视图中显示该字段

我用这个电话

@item.isTrue
Run Code Online (Sandbox Code Playgroud)

但我得到了真或假,

我想在真实时得到肯定而在虚假时立刻肯定

我该怎么办?

Mic*_*lap 68

在你看来:

@(item.isTrue?"Yes":"No")
Run Code Online (Sandbox Code Playgroud)


hut*_*oid 25

你可以使用这样的自定义html助手扩展方法:

@Html.YesNo(item.IsTrue)
Run Code Online (Sandbox Code Playgroud)

这是以下代码:

public static MvcHtmlString YesNo(this HtmlHelper htmlHelper, bool yesNo)
{
    var text = yesNo ? "Yes" : "No";
    return new MvcHtmlString(text);
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以使用一行Razor代码在整个站点中重复使用它.


Ant*_*t P 5

为了扩展DigitalD的答案,您可以考虑将其包装在扩展方法中:

public static string ToFriendlyString(this Boolean b)
{
    return b ? "Yes" : "No";
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以在各处使用它:

@item.IsTrue.ToFriendlyString()
Run Code Online (Sandbox Code Playgroud)


Mil*_*and 5

在你的模型中写下这样的内容:

public Nullable<bool> Active
{
    get;
    set;
}
public string ISActive
{
    get
    {
        return (bool)this.Active ? "Yes" : "NO";
    }
}
Run Code Online (Sandbox Code Playgroud)

Active是一个布尔属性,我们创建ISActive属性来读取其值并向用户显示适当的消息。