2016-09-27 13 views
-1

ブール値を送信するためにCheckBoxForを使用しています。Checkboxfor MVC Razorで常にnullを返します

Demo.cshtmlは

enter image description here

でも、私が選択したチェックボックス

<div class="checkbox"> 
    <label>@Html.CheckBoxFor(i => i.ReportModel.Is_XRay.Value) X-Ray</label> 
</div> 
、私は隠された値でfalseを取得しています。

私はページを送信するときも、私は隠し入力は常にfalseの値を持つべきであると

+1

'Is_XRay'がnull可能な理由はありますか?私はそれがおそらくあなたの問題の原因だと思う... – petelids

+0

データベースにはnullだけがありません。しかし、常にTrue/falseの値があります –

+0

この質問をご覧ください - http://stackoverflow.com/questions/6849774/mvc3-creating-checkbox-for-nullable-booleanそれが助けになると思います。この場合、ダーリンの回答を見ることが最善の方法です(これは、null不可能なプロパティを持つビューモデルを作成することです)。 – petelids

答えて

0

ヌルチェックボックスの値を取得しています。これは、チェックボックスをオフにすると、サーバーにデータが送信されないためです。これを回避するには、サーバーに常にポストされるfalse値の隠し入力があります。チェックボックスをオンにして送信すると、URLに変数名が2回あることがわかります(1回は真、もう一度はfalse)。実際の問題に取り組むためには、変数の名前と関係があると思われます。あなたがリスト内のオブジェクトを使用しているとき、Razorはアンダースコアを挿入します。あなたはモデルバインダーにすでに苦労していると思います。

関連する問題