> 백엔드 개발 > C++ > MVC의 목록으로 Razor DropDownList를 채우는 방법은 무엇입니까?

MVC의 목록으로 Razor DropDownList를 채우는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-29 22:44:33
원래의
697명이 탐색했습니다.

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

Razor DropDownList를 List로 채우기 MVC

이 시나리오에는 List, 즉 DbUserRoles GetRoles() 메서드를 포함하는 모델과 검색된 목록을 모델로 전달하는 동안 뷰를 로드하는 컨트롤러가 있습니다.

드롭다운 목록을 채우기 위해 뷰 모델(UserRoleViewModel)을 도입하여 비즈니스 로직을 분리하고 뷰를 단순화할 수 있습니다. 이 뷰 모델에는 사용자 선택을 위한 SelectedUserRoleId와 드롭다운 항목을 위한 목록(UserRoles)이 포함되어 있습니다.

컨트롤러:

  • DbUserRoles 목록을 프레젠테이션에 적합한 형식으로 변환합니다. (SelectListItem 목록) LINQ 사용 선택합니다.

보기:

  • @Html.LabelFor 및 @Html.DropDownListFor를 사용하여 viewmodel 속성을 해당 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 DropDownList를 채우는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿