私は、クライアントがチェックボックスを使用して選択を行うことを希望する部分的な見解を持っています。次に、送信ボタンをクリックすると、選択したアイテムのIDがコントローラに送信されます。コントローラは確認ビューにリダイレクトされます。良い、シンプルで安全な解決策は何でしょうか?可能であればJavascriptを避けたいと思います。ありがとう!MVC選択されたチェックボックス項目をコントローラに部分ビューで渡す
VIEW
@model OrderTracking.Models.ViewModel.ItemDataView
<div>
@using (Html.BeginForm("VerifyItem", "ReserveItem", FormMethod.Get))
{
//@Html.AntiForgeryToken() //TODO: Wire-up
<table class="table table-striped table-condensed table-hover">
<thead>
<tr>
<th></th>
<th>Item ID</th>
</tr>
</thead>
<tbody>
@foreach (var i in Model.ItemProfile)
{
<tr>
<td>@Html.CheckBoxFor(r => i.IsSelected, new { @class = "checkbox" })</td>
<td>@Html.DisplayFor(r => i.ItemId)</td>
</tr>
}
</tbody>
</table>
@Html.ActionLink("Verify Order Information", "VerifyOrderInfo", "ReserveItem", "", new { @class = "btn btn-primary btn-large" })
}
MODEL
namespace OrderTracking.Models.ViewModel
{
public class ItemProfileView
{
[Key]
public int ItemId { get; set; }
public bool IsSelected { get; set; }
}
public class ItemDataView
{
public IEnumerable<ItemProfileView> ItemProfile { get; set; }
}
}
CONTROLLER
public ActionResult VerifyOrderInfo()
{
return View();
}
'foreach'ループを使うことはできません - コレクションへのバインディングには[この回答](http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943)を参照してください。 (そして、あなたは 'ItemId'プロパティに隠れた入力を含める必要があります。 –
リンクありがとうございますそれは本当に有益な情報です – Stormseye