我们最近将现有的.NET 4 MVC 3项目升级到.NET 4.5和MVC 4。
我们在视野中有这样的事情:
@Model.MyBool
<input type="hidden" name="foo" value="@Model.MyBool" />
用于呈现为:
True
<input type="hidden" name="foo" value="True" />
或:
False
<input type="hidden" name="foo" value="False" />
但现在它呈现为:
True
<input type="hidden" name="foo" value="value" />
或:
False
<input type="hidden" name="foo" />
也就是说,如果布尔属性在视图中呈现为隐藏输入值属性的值,则它不会呈现为True
或False
(与其他地方一样),但而是渲染为value
,或完全错过该属性。
两个问题:
答案 0 :(得分:3)
WTF?
Razor 2 conditional attributes
有没有一种简单易行的方法可以修复那些破坏我应用程序的地方?
我无法想到(这就是为什么你应该使用@Html.Hidden("foo", Model.MyBool)
)。我最好的猜测是使用Resharper的Structured Replace。
答案 1 :(得分:2)
看起来这样有效:
<input type="hidden" name="foo" value="@Model.MyBool.ToString()" />