ホームページ >バックエンド開発 >C++ >チェックボックスのリストをASP.NET MVCのモデルに効率的にバインドする方法は?

チェックボックスのリストをASP.NET MVCのモデルに効率的にバインドする方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-31 17:36:13535ブラウズ

How to Efficiently Bind a List of Checkboxes to a Model in ASP.NET MVC?

asp.net mvcビューの再選挙ボックスリストを渡し、抽出

ASP.NET MVCでは、モデルへのチェックボックスリストのコレクションがユーザーの好みを収集するために不可欠です。ただし、既存のオプションリストがあり、関連するオプションを表示する必要がある場合、デフォルトのforeachサイクルメソッドは無力であるようです。

この問題を解決するために、強力なタイプのHTML補助方法の使用を検討してください。 HTMLを手動で生成する必要性を回避するために、シームレスな2ウェイモデルバインディングを提供します。

ビューモデルを作成します

最初に、ビュー内のデータを表すビューモデルを作成します。この例では、ユーザーを利用可能な文字に関連付けることができます 充電ビューモデルを入力してください

ビューに関連付けられたGET操作では、ユーザーデータを使用してUSERVMを埋めます。これには、ロールリストとマーク付き関連付けが使用できる役割が含まれます。

<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>
ビューのチェックボックスを表示

ビューでは、HTML補助方法を使用して、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>
を選択します フォームに関連付けられたポスト操作では、バインディングモデルがバインドされ、更新された発行された属性はユーザーの選択を反映します。

このメソッドにより、正しいモデルバインディングが保証され、同時にユーザーが完全なオプションリストから選択し、選択したオプションをユーザーに関連付けることができます。

以上がチェックボックスのリストをASP.NET MVCのモデルに効率的にバインドする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。