MVC 애플리케이션에서 개체 목록이 포함된 양식이 목록을 컨트롤러에 올바르게 제출하지 않습니다. 양식을 제출한 후 컨트롤러가 받은 개체 목록은 비어 있습니다.
문제는 양식 요소에 있는 목록 항목의 색인이 누락되어 발생합니다. 모델 바인더에는 목록의 요소를 구별하기 위해 인덱스가 필요합니다.
이 문제를 해결하려면 부분 보기 대신 템플릿을 사용하세요.
1. 편집기 템플릿 만들기
뷰 폴더 아래의 "EditorTemplates" 폴더에서 "PlanCompareViewModel.cshtml"이라는 편집기 템플릿을 만듭니다. 템플릿에 다음 코드를 삽입하세요.
<code>@model PlanCompareViewModel <div> @Html.HiddenFor(p => p.PlanID) @Html.HiddenFor(p => p.CurrentPlan) @Html.CheckBoxFor(p => p.ShouldCompare) </div></code>
2. 상위 뷰 수정
다음과 같이 상위 뷰를 업데이트하세요.
<code>@model IEnumerable<plancompareviewmodel> @using (Html.BeginForm("ComparePlans", "Plans", FormMethod.Post, new { id = "compareForm" })) { <div> @Html.EditorForModel() </div> }</code>
DisplayTemplates 및 EditorTemplate은 컬렉션에 대한 색인 생성을 자동으로 처리하여 모델 바인더가 올바른 개체 목록을 생성하도록 합니다.
위 내용은 내 MVC 양식이 개체 목록을 게시하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!