2014-12-04 2 views
0

DropDownListFor가 viewmodel의 값을 목록에 바인딩하지 않을 때를 대비 한 작은 경우를 발견했습니다.MVC DropDownList 속성 이름으로 인해 바인딩되지 않은 항목이 선택되었습니다.

아래 코드는 값을 바인딩하지 않습니다.

뷰 모델

public class PersonViewModel 
{ 
    [Required] 
    public Title? Title { get; set; } 
    public IEnumerable<SelectListItem> TitleSelectList { get; set; } 
} 

컨트롤러

public ActionResult Person() 
    { 
     return View(
      new PersonViewModel 
      { 
       Title = Title.Mrs, 
       TitleSelectList = EnumHelper.GetSelectList(typeof(Title)), 
      }); 
    } 

보기

@Html.DropDownListFor(model => model.Title, Model.TitleSelectList, "Please select...", new { @class = "form-control" }) 

답변

0

속성 이름 수정이 변경.

viewmodel을 public Title? TitleTesting { get; set; }으로 변경하고 나머지 코드가 제대로 작동하도록 업데이트하십시오.

버그 또는 예약어인지 알고 싶습니다.

+0

[이 답변] (http://stackoverflow.com/a/26905905/1199711)을 확인하십시오. – Zabavsky

+0

'ViewBag.Title'과 충돌 할 수 있습니다. –

관련 문제