2012-04-15 2 views
4

다음 편집 템플릿은 'DropDown.cshtml'입니다. list 부분은 정상적으로 작동하며, 템플리트는 부두를 사용하여 SelectListViewData에서 가져 왔습니다. 컨트롤러는 뷰 모델의 모든 선택 목록을 ViewData에 배치하며 목록 측면에 문제가 없습니다.DropDownListFor가 내 편집기 템플릿에서 선택한 값을 인식하지 못하는 이유는 무엇입니까?

@{ 
    var list = this.GetModelSelectList(); 
} 
@Html.DropDownListFor(m => Model, list) 

I은 ​​이와 같은 외부 키 뷰 모델 속성에 해당 템플릿을 사용 컨트롤러의

[Required] 
[UIHint("DropDown", "MVC", "SelectListName", "JobLevelSelectList")] 
[Display(Name = "Job Level")] 
public Guid? JobLevelId { get; set; } 

public SelectList JobLevelSelectList { get; set; } 

, JobLevelId 즉시보기를 실행하기 전에 정확한 값을 갖고, 아직 항목가 선택되지 렌더링 된 select 요소입니다. 또는 선택 목록의 첫 번째 항목이 항상 선택됩니다.

내 편집기 템플릿에서 사용할 때 DropDownListFor이 속성 값을 무시하지만 직접 호출 할 때 제대로 작동하는 이유는 무엇입니까?

+0

http://stackoverflow.com/questions/10039006/mvc-dropdownlist-selectedvalue-not-displaying-correctly – RickAndMSFT

+0

@RickAndMSFT를 참조하십시오. 여기에 실제로 적용되는 질문이나 답변에는 아무 것도 표시되지 않습니다. 허용 된 대답은'DropDownListFor'의 람다에있는 model 속성이 select list의 * 선택된 id *를 덮어 쓴다는 것입니다. 내 원시 DDL이 아니라 내 편집기 템플릿에서만 무시되는 '람다 값'에 대한 내 문제에 도움이되지 않습니다. – ProfK

+1

'ExpressionHelper.GetExpressionText() '(헬퍼가 속성 이름을 찾는 데 사용하는 것)이'm => Model'과 작동하지 않는다면 놀랄 일이 아닙니다. – bhamlin

답변

3

유감스럽게도 MVC3에 a known bug (MVC 4 베타에서 수정되지 않았는지 확인하지 못했습니다)입니다.

내가 사용했던 해결 방법은 DropDownListFor가 바인딩 된 컬렉션에 따라 Selected 속성을 수동으로 설정하는 것이지만 이상적은 아니지만 효과적이었습니다.

+0

감사합니다. 내 편집기 템플릿 내에서이 해결 방법을 사용할 수 있는지 확인하십시오. – ProfK

관련 문제