【发布时间】:2020-09-26 18:59:42
【问题描述】:
我正在尝试提交一个包含复选框的表单。 当我提交表单时,我没有从表单中获取选定的数据。我一直在尝试使用 asp-for,但我不明白我做错了什么。
这是我的剃须刀页面:
@model TheaterReservering.Models.KlantReservering
@{
ViewData["Title"] = "Edit";
}
<h1>Edit</h1>
<h4>Reservering voor: @Model.Klant.Naam</h4>
<form asp-action="Edit">
<input type="hidden" asp-for="Klant" />
<table class="table">
<thead>
<tr>
<th>
1
</th>
<th>
2
</th>
<th>
3
</th>
<th>
4
</th>
<th>
5
</th>
<th>
6
</th>
<th></th>
</tr>
</thead>
<tbody>
@{
var count = 0;
}
@foreach (var item in Model.Reserveringen)
{
if ((count % 6) == 0)
{
@:<tr>
}
<td style="text-align:center; vertical-align:middle">
<div class="form-group">
@if (item.KlantId == Model.Klant.Id)
{
<input type="checkbox" asp-for="Reserveringen.ElementAt(count).Bezet" checked />
<br />
<div style="background-color: blue; text-align: center">
<label style="color:white" asp-for="@item.Naam">@item.Naam</label>
</div>
}
else if (item.KlantId == null)
{
<input type="checkbox" asp-for="Reserveringen.ElementAt(count).Bezet" />
<br />
<div style="background-color: green; text-align: center">
<label style="color:white" asp-for="@item.Naam">@item.Naam</label>
</div>
}
else
{
<input type="checkbox" checked disabled />
<br />
<div style=" background-color: red; text-align: center">
<label style="color:white" asp-for="@item.Naam">@item.Naam</label>
</div>
}
</div>
</td>
if ((count % 6) == 5)
{
@:</tr>
}
count++;
}
</tbody>
</table>
<div class="form-group">
<input type="submit" value="Reserveringen vastleggen" class="btn btn-primary" />
</div>
</form>
我的控制器方法:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Klant,Reserveringen")] KlantReservering klantReservering)
{
if (id != klantReservering.Klant.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
_context.Update(klantReservering);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(klantReservering);
}
这是我创建的用于将 Klant 类与 Reservering 结合起来的类。
public class KlantReservering
{
public Klant Klant { get; set; }
public List<Reservering> Reserveringen { get; set; }
}
}
【问题讨论】:
-
能否分享一下 Klant 和 Reserveringen 的详细代码?