2016-12-10 18 views
0

ASP.NET MVC 4アプリケーションでは、テーブル行をマークできます。カミソリビューが含まれていますコントローラのチェックボックスの一覧を取得する方法

@using (Html.BeginForm()) 
{ 
<table class="table table-hover"> 
    @foreach (var f in Model.Failid) 
    { 
     <tr> 
      <td>@f.FailiNimi</td> 
      <td> 
       @Html.CheckBox("c" + f.Id.ToString()) 
     </td> 
    </tr> 
    } 
</table> 

<input type="submit" class="btn btn-success" /> 
     @Html.AntiForgeryToken() 

     } 

送信ボタンが押された場合

c40=false&c9=true&c9=false&c9=false&c10=false&c13=false 

コントローラの署名が

[HttpPost, ValidateAntiForgeryToken] 
public ActionResult Failid(NameValueCollection nv) 
{ 
... 

であるように、ブラウザはボディとポスト要求を送信ただしのcontrolerでパラメータの値が空であるNV。チェックボックス名はコントローラパラメータとして渡されません。

コントローラでチェックボックスのチェックボックス名のリストを取得する方法はありますか?

+1

あなたはエディタテンプレートを検討しましたか? http://stackoverflow.com/questions/38961222/how-to-know-the-selected-checkboxes-from-within-the-httppost-create-action-metho/38964032#38964032 – Shyju

+0

'foreach'ループを使用しないでください - [この回答](http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943)を参照してください。そして、あなたが編集したいものを表現するビューモデルを使用してください - [この回答](http://stackoverflow.com/questions/29542107/pass-list-of-checkboxes-into-view-and-pull-out-ienumerable/29554416#29554416) –

答えて

1

HttpPost, ValidateAntiForgeryToken] 
public ActionResult Failid(FormCollection nv) 

何もまだ戻って来ない場合は、名前があなたの期待にレンダリングされていることを確認します。また、私は完全に覚えていませんが、チェックボックスで独自の価値を設定する必要がありますか?何かを投稿するには、値を指定する必要があります。この値は、サーバーに返され、MVCによってブール値に変換されます。

0

なぜ、それは名前評価に表示されますか?あなたのMVCコントローラはFormCollectionを取る必要がありRequest.Form.AllKeysとRequest.Form.GetValuesを使用してみてください(キー)

関連する問題