ViewRendererを使用して、次のようにビュー結果をファイルに書き込みます。
public class WriteViewToFile
{
private DetailsController controller = ViewRenderer.CreateController<DetailsController>();
public void WriteDataToFile(ContextDB db, DataViewModel model, string fileName)
{
string html = ViewRenderer.RenderView("~/Views/Details/TemplateForData.cshtml", model, controller.ControllerContext);
File.WriteAllText(fileName, html);
// controller.dispose();
}
public void WriteOtherToFile(ContextDB db, OtherViewModel model, string fileName)
{
string html = ViewRenderer.RenderView("~/Views/Details/TemplateForOther.cshtml", model, controller.ControllerContext);
File.WriteAllText(fileName, html);
// controller.dispose();
}
}
最後に controller.dispose() を追加する必要がありますか、それとも自動的に行われますか? はいの場合、いずれかのメソッドが呼び出された後にそれを破棄する方法はありますか?