-1
これらの項目を選択するための項目とチェックボックスを含むテーブルを作成したいとします。これらのチェックボックスをリストに含めていますが、このリストは常にnullを返します。ご助力ありがとうございます。ASP.NET MVC CheckBoxリストは常にnullを送信します
コントローラー:
public ActionResult Index()
{
var expenseTypesView = new ViewExpenseTypesAndSelection
{
ExpensesTypes = _context.ExpenseType.ToList(),
};
return View(expenseTypesView);
}
[HttpPost]
public ActionResult SelectExpensesTypes(ViewExpenseTypesAndSelection SelectedExpenses)
{
var entry = new userSpecificExpenses();
var i = 0;
foreach (var item in SelectedExpenses.SelectedExpenses)
{
if(item)
{
entry.expenseTypeId = i;
entry.UtilisateurId= User.Identity.GetUserId();
_context.UserspecificExpenses.Add(entry);
_context.SaveChanges();
}
i++;
}
return View();
}
ビュー:
@model MBT.ViewModels.ViewExpenseTypesAndSelection
....
@using (Html.BeginForm("SelectExpensesTypes", "ExpenseTypes"))
{
<table class="table table-bordered table-hover">
<thead>
<tr>
<th class="text-center">Expense</th>
<th class="text-center">Include</th>
</tr>
</thead>
<tbody>
@{
for (int i = 0; i < Model.ExpensesTypes.Count; i++)
{
<tr>
<td>
<div class="checkbox">
@Model.ExpensesTypes[i].Type
</div>
</td>
<td>
<div class="checkbox">
@Html.CheckBoxFor(m => m.SelectedExpenses[i])
</div>
</td>
</tr>
}
}
</tbody>
</table>
<button type="submit" class="btn btn-primary">Submit</button>
}
あなたのモデルは「ExpenseType」と「SelectedExpenses」とは何ですか? '@Html.CheckBoxFor(m => m.SelectedExpenses [i])'を使うことは意味をなさない。あなたの 'ExpensesType'モデルは' bool IsSelected'プロパティと '@Html.CheckBoxFor(m => m.ExpensesTypes [i] .IsSelected)'プロパティを必要とします。 'ExpensesType' IDプロパティ –