我仍然在学习asp.net核心方面还很陌生,并且我面临复选框的问题。我有一个项目(课程)列表,这些项目是通过存储在sql表中的方式显示的,并且将它们显示在视图内的表中,我为复选框添加了以下代码,但未发布任何值。我已经尝试了很多复杂的解决方案,但是在我的情况下它们都没有起作用,因此我们将不胜感激。
@foreach (Course course in Model) { <tr> <td>@Html.CheckBoxFor(modelItem => course.isSelected)</td> </tr> }
[DefaultValue(false)] public bool isSelected { get; set; }
public async Task<ActionResult> Index(string searchString) { var courses = from m in _context.Courses select m; ViewData["Filtering"] = searchString; if (searchString != null) { courses = courses.Where(m => m.Name.Contains(searchString.ToUpper().Replace(" ", ""))); } return View(await courses.AsNoTracking().ToListAsync()); }
答案 0 :(得分:0)
如果要将复选框值列表发布到HttpPost
操作,则可以为每个复选框使用设置相同的name
属性,请参阅我的演示:
1.View(使用表单标签)
<form method="post">
@foreach (Course course in Model)
{
<tr>
<td> <input type="checkbox" name="courseSelectedStatus" value="@course.isSelected" />
</tr>
}
<input type="submit" value="submit" />
</form>
2。动作:
[HttpPost]
public async Task<IActionResult> Index(List<bool> courseSelectedStatus)
{
//other logic
return View();
}
由于不清楚如何处理复选框值,您还可以参考下面的链接,以传递List模型中的数据: