항목 목록을 렌더링하는 usercontrol이 있습니다. 각 행에는 숨겨진 필드, 텍스트 및 삭제 버튼에 고유 한 ID가 있습니다. delete 버튼을 클릭하면 jquery ajax를 사용하여 컨트롤러 메소드 DeleteCA (아래 참조)를 호출합니다. DeleteCA는 이전 목록을 대체하는 항목의 새 목록을 반환합니다.. NET MVC RenderPartial 모델에없는 정보를 렌더링합니다.
[HttpPost]
public PartialViewResult DeleteCA(CAsViewModel CAs, Guid CAIdToDelete)
{
int indexToRemove = CAs.CAList.IndexOf(CAs.CAList.Single(m => m.Id == CAIdToDelete));
CAs.CAList.RemoveAt(indexToRemove);
return PartialView("EditorTemplates/CAs", CAs);
}
나는 실제로 DeleteCA가 올바른 항목을 제거하고 있음을 확인했습니다. PartialView로 전달 된 수정 된 CA 목록에는 삭제 된 항목이 더 이상 포함되지 않습니다.
부분보기가 렌더링 될 때 이상한 일이 발생합니다. 목록의 항목 수는 줄어들지 만 항상 목록에서 제거 된 마지막 요소입니다. 렌더링 된 항목은 PartialView로 전송 된 목록/모델의 항목과 일치하지 않습니다.
Usercontrol 파일 (ascx)에서 Model.CAList와 λ 식 m => m.CAList를 모두 사용하고 있습니다.
어떻게 UserControl이 PartialView로 전송 된 모델에없는 것을 렌더링 할 수 있습니까?
고맙습니다 안드레아스
아! 고마워 Omar! – Andreas