asp.net-mvc – ASP.NET MVC 5为隐藏输入渲染不同的bool值

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP.NET MVC 5为隐藏输入渲染不同的bool值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给出以下viewmodel:
public class Fooviewmodel
{
    public bool IsBoolValue { get; set; }
}

和这个观点:

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

隐藏输入字段的输出是:

< input type =“hidden”id =“无论如何”data-something =“True”value =“value”>

属性没有设置为true,但是data-something属性是什么?

是否有MVC 5的变化,这将导致这一点,因为在我的MVC 4应用程序这个问题不会发生.

解决方法

我想我已经弄清楚了.

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

What does it mean in HTML 5 when an attribute is a boolean attribute?

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

< input readonly />

要么

< input readonly =“readonly”/>

因此,如果Model.IsBoolValue为true,则Razor viewengine会使用您的模型的bool值,并将渲染(在我的情况下)值属性.否则,如果它是false,那么value属性根本就不会被渲染.

编辑:

正如Zabavsky在评论中所说,强制True或False的值出现在值attrbiute中,简单的使用ToString():

< input type =“hidden”value =“@ Model.BoolProperty.ToString()”/>

猜你在找的asp.Net相关文章