Ich bin auf der Suche nach einer Checkbox-Liste in .NET Core, aber einige Schwierigkeiten haben.Implementieren Sie die Checkbox-Liste im .NET-Core
Mein Viewmodel:
public class GroupIndexViewModel
{
public Filter[] Filters { get; set; }
}
public class Filter
{
public int Id { get; set; }
public string Name { get; set; }
public bool Selected { get; set; }
}
Meine Ansicht:
@model GroupIndexViewModel
<form asp-action="Index" asp-controller="Group" method="get">
<ul>
@for (var i = 0; i < Model.Filters.Length; i++)
{
<li>
<input type="checkbox" id="@Model.Filters[i].Name" asp-for="@Model.Filters[i].Selected" value="@Model.Filters[i].Selected" checked="@Model.Filters[i].Selected" />
<label for="@Model.Filters[i].Name">@Model.Filters[i].Name</label>
</li>
}
</ul>
<button type="submit" name="action">Filtrer</button>
</form>
Bei meinem Controller veröffentlicht, zeigt die Filter-Eigenschaft in meinem Viewmodel falsch selbst ausgewählt, obwohl es in der Ansicht ausgewählt ist.
Haben Sie stattdessen 'Html.CheckboxFor (m => m.Filters [i] .Name)' 'versucht? – Dai
Wie sieht der gerenderte HTML-Code mit Ihrem vorhandenen Razor-Code aus? – Dai
Wenn für das Checkbox-Eingabefeld zusätzlich zur asp-for-Eigenschaft die Eigenschaft checked und/oder value angegeben wird, wird der tatsächliche Checkbox-Status nicht korrekt an die POST-Aktion übergeben. Wenn Sie es mit nur asp-for ablassen, dann wird es funktionieren. –