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()”/>

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....