Die Liste der Re -Wahlen in der ASP.NET -MVC -Ansicht übergeben und IEnumerable extrahieren
In ASP.NET MVC ist die Sammlung der Kontrollkästchen -Liste an das Modell für das Sammeln von Benutzereinstellungen von wesentlicher Bedeutung. Wenn Sie jedoch über die vorhandene Optionsliste verfügen und die zugehörigen Optionen anzeigen müssen, scheint die Standardmethode für die Foreach -Zyklus kraftlos zu sein.
Um dieses Problem zu lösen, sollten Sie eine starke HTML -Hilfsmethode mit einer starken HTML -Hilfsmethode verwenden. Sie liefern eine nahtlose zweiwegs -Modellbindung, um zu vermeiden, dass HTML manuell erzeugt werden muss.
Erstellen Sie ein Ansichtsmodell
Erstellen Sie zunächst ein Ansichtsmodell, um die Daten in der Ansicht darzustellen. In diesem Beispiel assoziieren Sie den Benutzer mit dem verfügbaren Charakter.
Füllen Sie das Ladeansichtsmodell
aus
<code class="language-csharp">public class RoleVM
{
public int ID { get; set; }
public string Name { get; set; }
public bool IsSelected { get; set; }
}
public class UserVM
{
public int ID { get; set; }
public string Name { get; set; }
public List<RoleVM> Roles { get; set; }
}</code>
Nach dem Login kopieren
Verwenden Sie in der mit der Ansicht zugeordneten Operation die Benutzerdaten, um den USVM zu füllen, einschließlich der Rolle, die in der Rollenliste verwendet werden kann, und der gekennzeichnete Assoziation:
Zeigen Sie das Kontrollkästchen in der Ansicht
an
Verwenden Sie in der Ansicht die HTML -Hilfsmethode, um das Kontrollkästchen für jedes Zeichen in uservm zu präsentieren: <code class="language-csharp">public ActionResult Edit(int ID)
{
UserVM model = new UserVM();
User user = db.Find(ID); // 数据库查找方法示例
model.ID = user.ID;
model.Name = user.Name;
// 填充角色并根据用户角色设置其IsSelect属性
foreach (Role role in db.Roles) // 数据库查找方法示例
{
model.Roles.Add(new RoleVM
{
ID = role.ID,
Name = role.Name,
// 判断用户是否与角色关联
IsSelected = user.Roles.Any(ur => ur.RoleID == role.ID)
});
}
return View(model);
}</code>
Nach dem Login kopieren
Sammeln Sie Benutzer, um
zu wählen
im Postvorgang, das dem Formular zugeordnet ist, wird das Bindungsmodell gebannt, und das aktualisierte identifizierte Attribut spiegelt die Wahl des Benutzers wider:
<code class="language-csharp">@for (int i = 0; i < Model.Roles.Count; i++)
{
@Html.HiddenFor(m => m.Roles[i].ID)
@Html.CheckBoxFor(m => m.Roles[i].IsSelected)
@Html.LabelFor(m => m.Roles[i].IsSelected, Model.Roles[i].Name)
}</code>
Nach dem Login kopieren
Diese Methode sorgt für die korrekte Modellbindung und ermöglicht es den Benutzern gleichzeitig, aus der vollständigen Optionsliste auszuwählen und die ausgewählten Optionen mit dem Benutzer zu verknüpfen.
Das obige ist der detaillierte Inhalt vonWie binden Sie eine Liste von Kontrollkästchen effizient an ein Modell in ASP.NET MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!