ホームページ > バックエンド開発 > C++ > MVC で Razor ドロップダウンリストにリストを追加するにはどうすればよいですか?

MVC で Razor ドロップダウンリストにリストを追加するにはどうすればよいですか?

DDD
リリース: 2024-12-29 22:44:33
オリジナル
697 人が閲覧しました

How to Populate a Razor DropDownList with a List in MVC?

Razor DropDownList にリストを設定<オブジェクト> MVC 内

このシナリオでは、List、つまり DbUserRoles GetRoles() メソッドを含むモデルと、取得したリストをモデルとして渡しながらビューをロードするコントローラーがあります。

ドロップダウンリストにデータを入力するには、ビューモデル (UserRoleViewModel) を導入してビジネス ロジックを分離し、ビューを簡素化します。このビューモデルには、ユーザー選択用の SelectedUserRoleId とドロップダウン項目用のリスト (UserRoles) が含まれています。

Controller:

  • DbUserRoles リストをプレゼンテーションに適した形式に変換します。 LINQ を使用した (SelectListItem リスト)

View:

  • @Html.LabelFor と @Html.DropDownListFor を使用して、ビューモデルのプロパティを対応する HTML にバインドします。要素。

例:

ビューモデル:

public class UserRoleViewModel
{
    [Display(Name = "User Role")]
    public int SelectedUserRoleId { get; set; }
    public IEnumerable<SelectListItem> UserRoles { get; set; }
}
ログイン後にコピー

コントローラー:

private IEnumerable<SelectListItem> GetRoles()
{
    var dbUserRoles = new DbUserRoles();
    var roles = dbUserRoles
                .GetRoles()
                .Select(x =>
                        new SelectListItem
                            {
                                Value = x.UserRoleId.ToString(),
                                Text = x.UserRole
                            });

    return new SelectList(roles, "Value", "Text");
}

public ActionResult AddNewUser()
{
    var model = new UserRoleViewModel
                    {
                        UserRoles = GetRoles()
                    };
    return View(model);
}
ログイン後にコピー

ビュー:

@model UserRoleViewModel

@Html.LabelFor(m => m.SelectedUserRoleId)
@Html.DropDownListFor(m => m.SelectedUserRoleId, Model.UserRoles)
ログイン後にコピー

これこのアプローチでは、DbUserRoles リストの値が入力されたドロップダウンリストが生成されます。

以上がMVC で Razor ドロップダウンリストにリストを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート