2

값 A, 밴드 C가있는 드롭 다운을 채우고 싶습니다. 아래 코드는 편집이 아닌 작성 전용으로 작동합니다.익명 클래스 값에서 드롭 다운을 바인딩하는 방법

ViewBag.UserType = new[] { new SelectListItem { Text = "A", Value = "1", Selected = false }, new SelectListItem { Text = "B", Value = "2", Selected = false }, new SelectListItem { Text = "C", Value = "3", Selected = false } }; 

그래서 익명의 클래스를 만들었습니다. 아래와 같은 익명의 클래스가 있습니다.

var Roles= new[] 
      { new { Id =1,UserType="A" }, 
       new {Id=2,UserType="B" }, 
       new {Id=3,UserType="B" }    
      }; 
      ViewBag.Type = Roles.ToList(); 

하지만보기에서 드롭 다운을 채우는 방법을 모르겠습니다.

@Html.DropDownListFor(model => model.UserType, ((IEnumerable<SelectListItem>)ViewBag.UserType).Select(option => new SelectListItem 
            { 
             Text = (option == null ? "None" : option.Text), 
             Value = option.Value.ToString(), 
             Selected = (Model != null) && (option.Value == (Model.UserType).ToString()) 
            }),"Select") 

는 내가보기에 어떤 변화를해야

+0

이란 무엇입니까 귀하의 모델 유형, 당신이보기로 보내 주시겠습니까? –

답변

0

추가 귀하의 ViewModel 클래스에 속성 다음 - 다음과 같이보기

public SelectList Roles 
    { 
     get 
     { 
      List<SelectListItem> items = new List<SelectListItem>(); 
      items.Add(new SelectListItem 
      { 
       Value = "1", 
       Text = "A", 
      }); 
      items.Add(new SelectListItem 
      { 
       Value = "2", 
       Text = "B", 
      }); 
      items.Add(new SelectListItem 
      { 
       Value = "3", 
       Text = "C", 
      }); 

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

    public int SelectedRole { get; set; } 

및 바인딩 -

@Html.DropDownListFor(model => model.SelectedRole, Model.Roles)