在服务器端,我定义了一个新的布尔值,并将其设置为<input>
标记,但浏览器无法检测到它。
@{ var isAuthor = false; }
<input type="hidden" value="@isAuthor" />
编译后的结果是:<input type="hidden"></input>
但是,当我尝试将isAuthor
转换为string
时,它应该可以工作:
@{ var isAuthor = false; }
<input type="hidden" value="@isAuthor.ToString()" />
结果:<input type="hidden" value="false"></input>
为什么?我错过了什么吗?
发布于 2015-11-15 15:45:03
这是一个称为条件属性的Razor视图引擎功能。这个想法是为了简化场景,在这个场景中,您希望或不希望根据值呈现属性。以前你必须编写if
语句或使用三元运算符来处理,但有了条件属性,这一切都变得非常简单。
对于条件属性,如果属性的值为null
或false
,则不会呈现该属性。如果您希望值为false
,则需要将其转换为string,就像您在问题中所做的那样。
您可以在此blog article中阅读有关条件剃刀属性的详细介绍
https://stackoverflow.com/questions/33717448
复制相似问题