2011-03-07 1 views
3

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

이 질문에있는 방법 중 하나를 사용하여 ASP.NET MVC 뷰를 문자열로 렌더링 할 수있었습니다.

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

이 문제에 관해서 Stackoverflow에 대한 몇 가지 질문을 보았지만 모두 컨트롤러 컨텍스트가 필요합니다. mvccontrib에 뭔가가 있다고 생각했지만 더 이상 존재하지 않는 것 같습니다.

내가 발견 한 가장 가까운 것은 앞에서 언급 한 질문에 대한 대답이지만, 렌더링하는 뷰 내에서 RenderPartial로 인해 불행히도 중단됩니다.

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

+0

실행할 수 있습니다. – ShaneKm

답변

0

가짜 HttpContextBase을 만들고 가짜 HttpRequestBase을 만들어 해당 속성에서 의미있는 값을 반환해야합니다.

+0

더 구체적으로 말씀해주십시오. 어떻게 할 수 있습니까? – Florin

+0

@Florin :'HttpContextBase'와'HttpRequestBase'를 상속받은 클래스를 생성하고 기본 속성을 오버라이드합니다. 그런 다음이를 사용하여 ControllerContext를 작성할 수 있습니다. – SLaks

2

BuildStarted와 유용한 () 유용한 독립형 Razor 템플릿 엔진을 함께 사용했습니다. .ascx 컨텐츠를 간단한 문자열 템플리트에 적용해야하지만 작업을 수행해야합니다. 당신이 NuGet을 가지고 있다면

, 당신은 내가 같은 일을 찾고 있어요 Install-Package RazorEngine

관련 문제