Passez la liste des boîtes d'élections Re-la vue ASP.NET MVC et extraire ienumerable
Dans ASP.NET MVC, la collection de la liste de cases sur le modèle est essentielle pour collecter les préférences des utilisateurs. Cependant, lorsque vous avez la liste d'options existante et que vous devez afficher les options associées, la méthode de cycle ForEach par défaut semble être impuissante.
Afin de résoudre ce problème, veuillez envisager d'utiliser une méthode auxiliaire HTML de type fort. Ils fournissent une liaison de modèle à deux voies transparente pour éviter la nécessité de générer manuellement du HTML.
Créer un modèle de vue
Tout d'abord, créez un modèle de vue pour représenter les données dans la vue. Dans cet exemple, vous associez l'utilisateur au caractère disponible.
Remplissez le modèle de vue de charge
<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>
Dans l'opération GET associée à la vue, utilisez les données utilisateur pour remplir l'USERVM, y compris le rôle qui peut être utilisé par la liste de rôles et l'association marquée:
Affichez la case dans la vue
Dans la vue, utilisez la méthode auxiliaire HTML pour présenter la case à cocher pour chaque caractère dans USERVM: <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>
Collectez les utilisateurs pour choisir
Dans le poste d'opération associé au formulaire, le modèle de liaison sera emballé, et l'attribut ISSEled mis à jour reflétera le choix de l'utilisateur:
<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>
Cette méthode garantit la liaison du modèle correcte et permet en même temps aux utilisateurs de choisir parmi la liste d'options complètes et d'associer les options sélectionnées à l'utilisateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!