c# - 为什么不能 <input type ="hidden"> 从服务器端接受 bool 值?

标签 c# html asp.net-mvc razor

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

@{ var isAuthor = false; }
<input type="hidden" value="@isAuthor" />

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

但是,当我尝试转换 isAuthorstring ,它应该工作:

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

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

为什么?我错过了什么吗?

最佳答案

这是一个称为条件属性的 Razor View 引擎功能。这个想法是为了简化您想要或不想根据值呈现属性的场景。以前您必须编写 if 语句或使用三元运算符来处理它,但是有了条件属性,这一切都大大简化了。

对于条件属性,如果属性的值为nullfalse,则不会呈现该属性。如果您希望该值为 false,您需要将其转换为字符串,就像您在问题中所做的那样。

您可以在此 blog article 中阅读对条件 Razor 属性的精彩介绍。

关于c# - 为什么不能 &lt;input type ="hidden"> 从服务器端接受 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33717448/

相关文章:

C# 限制列表框项目

c# - 将 MBF 单精度和 double 转换为 IEEE

android - 在iPhone,BlackBerry和Android网站上使用声音

javascript - 从javascript到 Controller 的数据传递错误

asp.net - WebApi2 何时使用 OnAuthorizationAsync 与 OnAuthorization

c# - 在 Linq 中选择 Class(variable) 而不是 Select New Class{variable = x}

c# - 可选属性默认值的 XML 序列化

html - 导航栏不起作用

html - 如何让客户管理他们的网站?

asp.net-mvc - 使用缓存配置文件缓存 ChildActions 不起作用?