为什么<input type ="hidden">不能从服务器端接受布尔值?

16 html c# asp.net-mvc razor

从服务器端,我定义了一个新的布尔值并将其设置为<input>标记,但浏览器无法检测到它.

@{ var isAuthor = false; }
<input type="hidden" value="@isAuthor" />
Run Code Online (Sandbox Code Playgroud)

编译后,结果是: <input type="hidden"></input>

但是,当我尝试转换isAuthor为a时string,它应该工作:

@{ var isAuthor = false; }
<input type="hidden" value="@isAuthor.ToString()" />
Run Code Online (Sandbox Code Playgroud)

结果: <input type="hidden" value="false"></input>

为什么?我错过了什么?

dot*_*tom 19

这是一个名为条件属性的Razor视图引擎功能.我们的想法是简化场景,您希望或不希望根据值呈现属性.以前你必须编写if语句或使用三元运算符来处理它,但是使用条件属性它会大大简化.

对于条件属性,如果属性的值为nullfalse,则不呈现该属性.如果你想要值,false你需要将它转换为字符串,就像你在问题中所做的那样.

您可以在本博客文章中阅读有关条件Razor属性的精彩介绍