MVC 응용 프로그램에서 일부 DropDownLists가 있습니다. 내 컨트롤러에서 IEnumerable<SelectListItem>
을 만들고이를 내보기로 전송합니다. 불행히도 유효성 검사 오류가 있으면 해당 목록을 다시 만들어야합니다. 그렇지 않으면보기 렌더링이 실패합니다. 컨트롤러 액션 메소드에서 SelectListItem 목록은 어디서 가야합니까?
var possibilities = _repo.Objects.Select(o=>new SelectListItem(...));
viewmodel.Possibilities = possibilities;
return View(viewmodel);
뷰 모델은 다음과 같이 정의 된 가능성 속성이 있습니다
IEnumerable<SelectListItem> Possibilities { get; set; }
을 그리고 내보기에 나는 그것을 액세스 :
@Html.DropDownListFor(vm=>vm.ThePossibility, vm.Possibilities)
문제는 양식 게시 작업 메서드가 호출 될 때 뷰 모델이 그것은 Possibilities
에 대한 널 (null)을 가지고, 내가 전화 할 때 :
if(!ModelState.IsValid)
return View(model);
을보기는 렌더링되지 않습니다.
나는 포스트 엑션 방법에서 프로 폴리가 null 인 이유를 알고 있지만 이것을 고치는 가장 좋은 방법은 무엇입니까? 나는 그 목록을 다시 초기화하지 않을 것입니다.
감사합니다.
예, 감각을 만드는, 내가 그 생각을해야합니다. 이 일이 자동으로 일어나게하려면 어떤 종류의 뷰 상태를 다시 도입해야합니다. 감사. – zmbq