Asp.net mvc ASP.NET MVC 5为隐藏输入呈现不同的布尔值

Asp.net mvc ASP.NET MVC 5为隐藏输入呈现不同的布尔值,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,给定以下视图模型: public class FooViewModel { public bool IsBoolValue { get; set; } } 这种观点: <input type="hidden" id="Whatever" data-something="@Model.IsBoolValue" value="@Model.IsBoolValue" /> 隐藏输入字段的输出如下所示: 为什么值属性没有设置为真,而数据属性是 MVC 5中是否存在导致此问题

给定以下视图模型:

public class FooViewModel
{
    public bool IsBoolValue { get; set; }
}
这种观点:

<input type="hidden" id="Whatever" data-something="@Model.IsBoolValue" value="@Model.IsBoolValue" />

隐藏输入字段的输出如下所示:

为什么
属性没有设置为
,而
数据属性是


MVC 5中是否存在导致此问题的更改,因为在我的MVC 4应用程序中,此问题不会发生。

我想我已经解决了

我相信Razor viewengine遵循HTML 5设置布尔属性的方法,如下所述:

在HTML 5中,bool属性设置如下:

因此,Razor viewengine将获取模型的bool值,并在
model.IsBoolValue
true
的情况下(在我的例子中)呈现
value
属性。否则,如果它是
false
,则根本不会呈现
value
属性

编辑:

正如Zabavsky在评论中提到的,要强制在
属性中显示True或False值,只需使用
ToString()


首先,您应该向IsBoolValue指定输入的名称,这样做,输入的值将由mvc设置,现在模型绑定不起作用,如果您将输入的名称指定为IsBoolValue,则模型绑定将起作用。我认为值得一提的是,解决此问题的方法就是调用
ToString()
属性:
value=“@Model.IsBoolValue.ToString()”