4

重複の可能性:
ASP.NET MVC: CheckBoxFor が追加の入力タグをレンダリングする理由と、FormCollection を使用して値を取得する方法

チェック ボックスを作成し、モデルをチェック ボックスにバインドする必要がありました。モデル値の代わりに、値として false を割り当てるだけだとします。以下にコードを示します。

 @Html.CheckBox("abcd",false)

出力:

<input id="abcd" name="abcd" type="checkbox" value="true" />
<input name="abcd" type="hidden" value="false" />

生成された HTML の出力を上に示します。非表示のチェックボックスがカミソリビューエンジンによって配置される理由を理解しています。私の質問は、値がfalseの場合、表示されるチェックボックスはvalue="false"(チェックされていない)はずです。

なぜ入れたvalue="true"(チェックした)。ヘルパーのチェックボックスにも同じことが当てはまります。何が間違っているか、これを実装する方法を説明できますか?

4

2 に答える 2

3

モデルを介して値を渡すことを検討する必要があります。

@Html.CheckBoxFor(model => model.abcd)

「false」に設定する必要がある場合は、View を返す前にコントローラーで abcd プロパティを false に設定することでこれを行うことができます。

于 2012-11-16T10:46:19.807 に答える
2

チェックボックスには、チェックされた値とチェックされていない値がありません。チェックされた値のみがあります。カミソリが非表示フィールドを出力する理由を理解すれば、これを理解できます。

があったことをちょっと想像してみくださいvalue='false'。チェックボックスをオンにするとどうなりますか? 価値が変わると思いますか?(ヒント: すべきではありません)。でチェックされたチェックボックスがありますvalue='false'。それは一体何の意味ですか?次に、投稿すると、自分の値として投稿falseしますが、それはナンセンスです。

そう。チェックボックスの値の属性は変更されません。値を使用するコードを記述する必要がある場合は、その値を探すのではなく、チェックされているかどうかを調べてください。

于 2012-11-16T08:51:23.830 に答える