2009-08-24 5 views
5

ASP.NET MVC 응용 프로그램에서 페이지 (예 : wiki 페이지)를 렌더링하는 작업 페이지()가 있습니다.ASP.NET MVC : 다른 작업 내에서 작업 출력 받기

이제 Page()의 HTML 출력을 수집하고 HTML2PDF 구성 요소를 사용하여 해당 페이지의 PDF 버전을 만들어야하는 RenderPdf() 액션이 있습니다.

다른 작업 내에서 한 동작의 HTML 출력을 수집하는 방법은 무엇입니까? 참고 :보기에는 표시되지 않지만 작업 코드에는 직접 표시됩니다.

답변

0

MVC Futures 어셈블리를 사용할 수 있습니다.

액션의 HTML 출력을 얻을 수 있지만, 뷰 내부에서 RenderAction (라는 방법)이있다

...

+0

실제로 Bruno, RenderAction()은 HtmlHelper이며보기 내에서 사용하도록 설계되었습니다. mladen이 렌더링 된 출력을 캡처하는 것을 허용하지 않습니다. – apiguy

+0

아, 죄송합니다. 나는 그 답을 적용 할 것이다. 감사합니다 –

0

당신이를 캡처하는 자바 스크립트를 사용하는 은어 PDF 출력의 단지 사본 인 경우 이미지를 렌더링하고 Render PDF로 다시 전달 하시겠습니까?

또는 첫 번째 작업의 동일한 모델 내에서보기로 pdf 버전을 전달하십시오. 사용자가 필요로 할 때까지 숨긴다.

+0

zsharp, 그건 내가 계획하고있는 해결 방법이지만, 나는 그것에 만족하지 않습니다. PDF가 100 페이지와 비슷한 경우가 있습니다. 큰 HTML을 Javascript로 앞뒤로 전달하는 것을 좋아하지 않습니다. – mladen

+0

다른 방법으로는 작업 코드에서 pdf를 만들고 렌더링보기 직전에 서버에 파일로 저장하는 것일 수 있습니다. 볼 수 있도록 고유 ID가있는 pdf에 액세스하여 파일 이름의 ID와 일치시킵니다. – zsharp

+0

zsharp, 문제는 - PDF를 작성하는 것입니다. HTML2PDF 구성 요소를 사용하기 때문에 먼저 HTML이 필요합니다. – mladen

0

당신은 비슷한 질문이 awnser을 확인할 수 있습니다 :

Send ASP.NET MVC action result inside email

은 분명히 당신이 당신의 HTML2PDF의 PDF 생성과 SendEmailKThx() 전화를 교체해야합니다. 얀 빌렘 B에 의해 제안

0

방법은 작품과 컨트롤러의 이름 만 사용 GetActionOutput를 호출하는 동안 나는 ASP .NET MVC 1.

에서이 테스트. 예를 들어, 호출 된 컨트롤러 이름이 AccountController 인 경우 계정으로 만 처리하십시오.

AccountController에서 Test Method를 호출하고 싶다면 구문은 다음과 같습니다. GetActionOutput ("Account", "Test");