에서 새 창을 엽니 다선택적으로 나는 다음을 수행하고자하는 ASP.Net MVC 2 응용 프로그램에서 컨트롤러 액션
- 다른보기로 사용자를 리디렉션 : 양식 게시물을 처리하는 행동에 내가 원하는 : 현재 브라우저 창
- 열기 다른 정보를 보여주는 새로운 창 (다른보기)
target="_blank"
속성을 설정하고 추가 쉽게 수행 할 수 있습니다
에서
$(function() {
$("form").submit(function() {
window.location = "...";
});
});
조치 핸들러가 리턴 한보기는 양식이 게시되는 새 창에서 렌더링됩니다. 작업을 실행할 때 어떤 서비스 계층 오류가없는 경우
- , 다음 위의 작업을 수행 :
그러나,의는 조금 까다 만들어 보자.
- 조치를 실행할 때 서비스 계층 오류가있는 경우 새 창을 열지 마십시오. 조치에 의해 리턴 된보기가 양식이 있던 첫 번째 창에 표시되어야합니다.
예 : 모든 항목이 정상이면 pdfDocument가 생성되고 pdf가 새 창에 표시되어야한다고 가정합니다.
[HttpPost]
public ActionResult SomeAction(FormCollection form)
{
var serviceMethodParams = ... // convertion from the form data somehow
MemoryStream pdfDocument = null;
if (!serviceLayer.DoSomething(serviceMethodParams, out pdfDocument))
{
// Something went wrong, do not redirect, do not open new window
// Return the same view where error should be displayed
return View(...);
}
// The service method run ok, this must be shown in a new window and the origal window must be redirected somewhere else
return File(pdfDocument.ToArray(), "application/pdf");
}
참고 서비스가 true
를 반환하지만 서비스가 false
를 반환하는 경우 오류를 보여주는 뷰가 새 창에 표시되고 원래 창은 다른 곳 리디렉션 원래 솔루션 잘 작동.