6

我们最近将现有的 .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" />

也就是说,当布尔属性在视图中呈现为隐藏输入的 value 属性的值时,它不会呈现为Trueor False(就像它在其他地方所做的那样),而是呈现为value,或完全错过该属性。

两个问题:

  1. 怎么回事?
  2. 有没有一种很好的简单方法可以修复这破坏了我的应用程序的众多地方?这是一个很大的应用程序,我不喜欢浏览每一个视图来尝试识别我在输入字段中放入布尔值的任何地方。
4

2 回答 2

3

怎么回事?

Razor 2 条件属性

有没有一种很好的简单方法可以修复这破坏了我的应用程序的众多地方?

没有我能想到的(这就是你应该使用的原因@Html.Hidden("foo", Model.MyBool))。我最好的猜测是使用类似 Resharper 的结构化替换。

于 2012-08-31T19:55:01.660 回答
2

看起来这是有效的:

<input type="hidden" name="foo" value="@Model.MyBool.ToString()" />
于 2012-09-21T06:57:08.027 回答