2010-01-03 2 views
3

전자 메일 (.ascx 파일에 정의 된 주문 확인 전자 메일)을 통해 문자열을 보낼 수 있도록 ASP.NET MVC 뷰를 문자열로 렌더링해야합니다.HttpContext 또는 ControllerContext없이 View에 ASP.NET MVC 문자열을 렌더링 하시겠습니까?

question의 메서드 중 one을 사용하여 문자열에 ASP.NET MVC 뷰를 성공적으로 렌더링 할 수있었습니다.

그러나 지금은 실버 라이트를 통해 액세스 할 수있는 WCF 서비스를 통해 수행 할 수 있어야하므로 ControllerContext이 없습니다. 이 WCF 서비스는 내 MVC 프로젝트와 같은 프로젝트에 포함되어 있으므로 모든 모델 등에 액세스 할 수 있습니다.

이 문제에 관해서 Stackoverflow에 대한 몇 가지 질문을 보았지만 모두 컨트롤러 컨텍스트가 필요합니다. 나는 mvccontrib에 뭔가 있다고 생각했지만 그것도 doesn't seem to be there anymore입니다.

내가 찾은 가장 가까운 것은 accepted answer to the aforementioned question이지만, 불행하게도 렌더링중인 뷰 내에서 RenderPartial로 중단됩니다.

RenderAction과 관련된 ASP.NET MVC 2의 배후에서이 작업이 가능할 수도 있습니다.

답변

1

웹 양식보기 엔진이 MVC에 통합되는 방식은 템플릿 컨텐트를 응답 스트림에 직접 작성하는 ASP.NET 페이지 클래스에 실제로 템플릿/렌더링을 거품 짓기 때문에 컨트롤러 컨텍스트가 필요합니다.

당신은 스파크 뷰 엔진 (WFVE 템플릿을 변경하지 않고 렌더링)을 살펴보고 WCF 서비스 내에서 템플릿 이메일을 생성하는 데 사용하는 것이 좋습니다. Spark 다운로드에는이 예가 있습니다.

+1

여기 조롱 된 컨텍스트가 작동합니까? –

+0

또는 컨트롤러 동작을 실행하고 모델을 검색하는 데 유용합니다. 나는 문맥을 조롱하기 전에 시도했지만 멀리 가지 않았다. 지금 당장은 다른 것을 가지고 놀 시간이 없다. –

+0

버그를 도입 할 위험이있는 완벽한 조롱을 본질적으로 재현하지 않는 한 컨텍스트를 조롱하는 것을 권장하지 않는다. 진지하게, spark는 그것을 볼 가치가있는 것을 통합하는 데 1 시간도 채 걸리지 않았다. – Neal

1

왜 ControllerContext를 만들지 않으시겠습니까? fake?

관련 문제