는 요구가 성공적으로 ASP.NET MVC 컨트롤러에서 모델을 저장 한 후 다른 페이지로 리디렉션하는 말 작업 :리디렉션 후 부분 뷰에 저장
@{
Layout = "my layout";
Html.RenderAction("something else, a view for example");
Html.RenderAction("Index action of the above controller"); // <----
}
이 경우 RedirectResult 클래스에서 확인하고 상황에 맞는 아이의 행동이 있음을 확인하고 예외를 슬로우 것 "자식 작업은 작업을 재 수행 할 수 없습니다."
응답 스트림에 쓰기가 이미 진행 중이며 여기에서 리디렉션 할 수는 없지만 컨트롤러에서 서버 측 작업을 수행 한 후에도 해당 작업이 자식 인 경우에도 다른 페이지로 리디렉션 할 수 있어야한다는 것을 알고 있습니다. 동작. Layouts 및 RenderActions를 사용하여 페이지 디자인의 공유 부분을 다시 사용합니다.
그런 컨트롤러에서 어떻게 리디렉션을 구현 하시겠습니까?
편집 :
주요 목표는 특정 작업을하고 일부 데이터를 표시하거나 편집 양식을 제공하는 등의 논리적 개념에 분할보기/컨트롤러를 다시 사용하는 것입니다. 내 접근 방식은 RenderAction을 사용하여 결과를 컨테이너로 렌더링하는 것입니다. 컨테이너보기 (기본 페이지의 색인 작업)는 전통적인 asp.net 페이지, 레이아웃보기를 마스터 페이지, 편집 및보기 컨트롤러 /보기는 사용자 정의 컨트롤 (모듈)과 동일합니다. 문제는 무엇인가가 기록 된 후 응답을 리디렉션 할 수있는 방법이 없습니다입니다 :
일반적으로 사용자가 데이터를 게시 한 후 사람들을 리디렉션합니다. 데이터 게시는 절대로 하위 작업 일 수 없습니다. 구체적인 예가 무엇인가요? 어떤 점에서 당신이 아동 행동을 오용하고있는 것처럼 보입니다. – Kristof
코드 샘플은 실제로 구체적인 예에서 나온 것입니다. 보기는 양식 상단에 일부 정보를 렌더링하므로 (렌더링보기와 레이아웃이 두 가지이므로) 성공적인 저장 후에 리디렉션해야합니다 (메시지를 표시하고 리디렉션을위한 링크 또는 버튼 제공하는 대신).) –
여전히 다음과 같지 않습니다. 색인 조치는 실제로 색인이 아니며 저장 조치입니다. 왜 저장 작업을 표시 하시겠습니까? – Kristof