2011-12-10 4 views
0

私はのforeachウィッヒが移入持ってテーブルとラインテーブルの1つのフィールドは次のとおりです。私はあるRequest.Form [「45」](45を取得しようとした私のポスト関数内ダブルチェックボックス作成ミス?

<% foreach (var item in Model.List){%> 
    <td align="center"> 
     <%: Html.CheckBox(item.ID.ToString(),item.isChecked)%> 
    </td> 
<%}%> 

サンプルIDであります)、「真、偽」の値が受け取られていることが分かりました。

は、生成されたコードに見ると、私は見たこと:

イムはちょうど1つの入力を生成するかどうかを確認するため、どのようにその可能
<input name="45" type="checkbox" value="true" /><input name="45" type="hidden" value="false" /> 

?私もこの場合にはHtml.CheckBoxForを使用する方が良いとわかりません

ありがとう!

答えて

3

あなたは説明here

のRuby on Railsとモノレールの両方が使用するのと同じアプローチを読み取ることができます。

チェックボックスを含むフォームを送信すると、チェックボックスがオンになっている場合にのみ値が転記されます( )。だからチェックボックスをオフのままにしておくと、 多くの状況で が送られてくると、何も送信されずにサーバーに送信されます。非表示入力の名前が であるため、このチェックボックスをオフにすると、サーバーに「 'false」が送信されます。チェックボックスをチェックすると、 ModelBinderは自動的にモデルはそれの世話をするように、あなたがモデルを使用していないのはなぜ 「真偽」

から「真」を抽出するの世話をします。 asp.net-mvcでは要求オブジェクトを使用することはお勧めできません。あなたのactionresultでformcollectionパラメータを使用し、thisアプローチを使用してこのシナリオを処理することもできます。

ヘルパーが要件に合わない場合は、常にhtmlタグを使用できます。

関連する問題