電子メールをダウンロードできるアプリケーションで作業中です。私の見解では、チェックボックス/チェックボックスがチェックされている場合、私はこのメッセージをダウンロードするためにコントローラにIDを渡したいと思う。私はコードを説明しようとします:Asp.net mvc複数のチェックボックスの値をコントローラに渡す方法
@using (Html.BeginForm("DownloadData", "Messages", FormMethod.Post))
{
<table class="table table-bordered table-hover">
@for (int i = 0; i < Model.Count; i++)
{
<tr>
<td><input type="checkbox"
name="selectedIds[@i].messageID"/></td>
<td>@Model[i].messageFrom</td>
<td>@Model[i].messageSubject</td>
<td>@Model[i].messageDate</td>
</tr>
}
</table>
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Download" />
</div>
}
@i名=「selectedIds [@i] .messageID」doesntのは、私がチェックした場合、そのが増加しているために良いことになるだろうに:第一第二と第四のメッセージそれは私のリストに最初の2つの要素だけを追加します。
コントローラ:
[HttpPost]
public ActionResult DownloadData(List<MessagesModels> selectedIds)
{
return View(...);
}
モデル:
public class MessagesModels
{
public int messageID { get; set; }
public string messageSubject { get; set; }
...
}
私はそれは難しいイマイチだと思いますが、sollutionを見つける傾けます。助けることができる人に感謝します!私はこのような選択処理するために、このビューの新しいモデルを作成することをお勧めしますちょうどこのビューの(あるいはあなたが始めることができない場合)あなたのメッセージモデルを変更しないようにするに
チェックボックスのポイントは何ですか?あなたのモデル内のものにはバインドされず、 'value'属性もありません。どのオブジェクトが選択されているかを指定するには、モデルに 'bool IsSelected'プロパティを追加し、' @Html.CheckBoxFor(m =