私はこの非常に役立つ投稿を読みました:MVC3の画面ではなく文字列にhtmlをレンダリングする方法。
コントローラーでそれを実行する関数を作成しました。この関数をサービスとして提供できるように、別のプロジェクトのクラスからこのメソッドを呼び出せるようにしたいと思います。コードは次のようになります。
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
return sw.GetStringBuilder().ToString();
}
このクラスをIIS経由ではなく、直接呼び出したいのですが。ただし、ControllerContextはnullです。どういうわけかディスク上のビューを指定できますか?