다음 편집 템플릿은 'DropDown.cshtml'입니다. list
부분은 정상적으로 작동하며, 템플리트는 부두를 사용하여 SelectList
을 ViewData
에서 가져 왔습니다. 컨트롤러는 뷰 모델의 모든 선택 목록을 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
이 속성 값을 무시하지만 직접 호출 할 때 제대로 작동하는 이유는 무엇입니까?
http://stackoverflow.com/questions/10039006/mvc-dropdownlist-selectedvalue-not-displaying-correctly – RickAndMSFT
@RickAndMSFT를 참조하십시오. 여기에 실제로 적용되는 질문이나 답변에는 아무 것도 표시되지 않습니다. 허용 된 대답은'DropDownListFor'의 람다에있는 model 속성이 select list의 * 선택된 id *를 덮어 쓴다는 것입니다. 내 원시 DDL이 아니라 내 편집기 템플릿에서만 무시되는 '람다 값'에 대한 내 문제에 도움이되지 않습니다. – ProfK
'ExpressionHelper.GetExpressionText() '(헬퍼가 속성 이름을 찾는 데 사용하는 것)이'm => Model'과 작동하지 않는다면 놀랄 일이 아닙니다. – bhamlin