如何解决MVC4在视图中如何呈现bool的突破性变化

tee*_*yay 6 asp.net-mvc asp.net-mvc-4 .net-4.5

我们最近将现有的.NET 4 MVC 3项目升级到.NET 4.5和MVC 4.

在视图中我们有这种事情的地方:

@Model.MyBool
<input type="hidden" name="foo" value="@Model.MyBool" />
Run Code Online (Sandbox Code Playgroud)

过去常常呈现为:

True
<input type="hidden" name="foo" value="True" />
Run Code Online (Sandbox Code Playgroud)

要么:

False
<input type="hidden" name="foo" value="False" />
Run Code Online (Sandbox Code Playgroud)

但现在它呈现为:

True
<input type="hidden" name="foo" value="value" />
Run Code Online (Sandbox Code Playgroud)

要么:

False
<input type="hidden" name="foo" />
Run Code Online (Sandbox Code Playgroud)

也就是说,如果布尔属性在视图中呈现为隐藏输入的value属性的值,则它不会呈现为(TrueFalse像其他地方一样),而是呈现为value或完全错过该属性.

两个问题:

  1. WTF?
  2. 有一个很好的简单方法,我可以解决这个已经破坏我的应用程序的众多地方?这是一个很大的应用程序,我不想花时间浏览每一个视图来尝试识别我将bool放入输入字段的任何地方.

Ser*_*sev 3

搞什么?

Razor 2 条件属性

有没有一种简单的方法可以修复破坏我的应用程序的多个地方?

我想不出(这就是为什么你应该使用@Html.Hidden("foo", Model.MyBool))。我最好的猜测是使用 Resharper 的结构化替换之类的东西。