문제

출력을 파일로 렌더링하는 데 사용하는 콘솔 응용 프로그램을 원합니다.

의사 코드 :

ComponentBaseController controller = new ComponentBaseController();
SaveToFile("output.html", controller.Result);

다른 접근법을 시도한 이후로 실제 코드를 사용하지는 않지만 아무것도 가까이에 없습니다.

내가 사용한 가장 가까운 곳 Stephen Walther의 팁 # 25, 이건 :

ComponentBaseController controller = new ComponentBaseController();

RouteData routeData = new RouteData();
routeData.Values.Add("controller", "ComponentBase");

var fakeContext = new FakeControllerContext(controller, routeData);

var result = controller.Details("klasta7") as PartialViewResult;
result.ExecuteResult(fakeContext);
Console.Write(fakeContext.HttpContext.Response.ToString());

이것은 부분보기를 찾을 수 없다는 validoperationException을 던졌습니다. Views 폴더에 대해 다른 위치를 시도했지만 운이 없습니다.

어떤 아이디어? 감사!

도움이 되었습니까?

해결책

나는 당신이 요구하는 것 외에 다른 것을 추천하려고 시도하는 사람이 아니지만 Wyatt에 동의합니다. 목표는 끈적 끈적한면에서 약간 보이는 것처럼 보이며, 기껏해야 코드 냄새를 만들 것입니다. 단순히 렌더링 된 출력을 파일에 저장 해야하는 경우 컨트롤러에서 저장을 수행해야 할 때 호출되는 앱 서비스가 더 쉽다고 생각합니다. 이 경우 현재 HTTPContext, 경로 등에 액세스 할 수 있습니다.

별도의 앱이라면 (콘솔 앱이 자체적으로 존재 함), 콘솔 앱이 렌더링 된 출력을 검색 할 수있는 메소드가있는 웹 앱 내에서 서비스를 설정하는 것은 어떻습니까?

다른 팁

httpcontext 등이 없으므로 앱을 호스팅하지 않고 물건을 렌더링하는 것은 까다로울 것입니다.

이제 WebRequest를 사용하여 앱의 실행중인 버전에서 페이지를 가져 와서 디스크에 버리는 것이 조금 더 가능합니다.

마지막으로, 이것은 약간 fubar로 들립니다. 이 작업의 목표는 무엇입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top