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

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

Barbara Streisand
Barbara Streisandオリジナル
2025-01-05 04:37:43757ブラウズ

How to Populate a Razor DropdownList from a List in MVC?

リストから Razor ドロップダウンリストを作成<オブジェクト> MVC で

リスト<オブジェクト> からのデータをドロップダウンリストに追加するにはMVC では、ビューモデルを利用して、データをドロップダウンリストの要件に合わせた形式に変換できます。

ビューモデルの作成

必要なプロパティを備えたビューモデルを作成する選択した値のプロパティや表示する項目のリストなどのドロップダウンリストを操作します。この場合、これを UserRoleViewModel と呼びます。

DropDownList データの準備

コントローラー内で、ドロップダウンリストのデータを取得するメソッドを構築します。このメソッドでは、List からのデータを変換できます。 SelectListItem オブジェクトに変換します。 SelectListItem クラスは項目の値とテキスト表現の両方に必要なプロパティを提供し、SelectList クラスはドロップダウンリスト データの階層構造を提供します。

ビューでのビューモデルの使用

ビューで @model ディレクティブを利用して UserRoleViewModel にアクセスします。次に、Razor ヘルパー LabelFor および DropDownListFor を使用して、ドロップダウンリストとそのラベルをレンダリングします。 DropDownListFor ヘルパーは、ビューモデルで定義された UserRoles コレクションをドロップダウンリストに自動的に入力します。

実装例

ビューモデル、コントローラー、およびビュー:

ビューモデル:

public class UserRoleViewModel
{
    public int SelectedUserRoleId { get; set; }
    public IEnumerable<SelectListItem> UserRoles { get; set; }
}

コントローラー:

public 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)

このアプローチに従うことで、 List からのデータをドロップダウンリストに効果的に入力できます。 MVC では、値を選択するためのクリーンで直感的なユーザー インターフェイスが提供されます。

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

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