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 属性の値としてビューでブール値プロパティがレンダリングされる場合、TrueorFalseとしてレンダリングされず (他の場所で行われるように)、 としてレンダリングされるvalueか、属性が完全に失われます。

2 つの質問:

  1. なんてこと?
  2. これによりアプリケーションが壊れた多数の場所を修正できる簡単な方法はありますか? これは大きなアプリケーションであり、bool を入力フィールドに入力したすべての場所を特定するために、すべてのビューをトロールするのは好きではありません。
4

2 に答える 2

3

なんてこと?

Razor 2 条件属性

これによりアプリケーションが壊れた多数の場所を修正できる簡単な方法はありますか?

私が考えることができるものはありません(それがあなたが使用すべきだった理由です@Html.Hidden("foo", Model.MyBool))。私の最善の推測は、Resharper の Structured Replace のようなものを使用することです。

于 2012-08-31T19:55:01.660 に答える
2

これが機能しているように見えます:

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