ASP.NET MVC- 콘솔 애플리케이션의 컨트롤러 작업 방법
-
06-07-2019 - |
문제
출력을 파일로 렌더링하는 데 사용하는 콘솔 응용 프로그램을 원합니다.
의사 코드 :
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로 들립니다. 이 작업의 목표는 무엇입니까?
제휴하지 않습니다 StackOverflow