コントローラーの中で PartialView (部分ページ) の生成する html (マークアップ) を取得したいことがあったので、覚書としてコードのサンプルを記載しておきます。
検証は ASP.NET MVC 5.1 を使用しt、 jquery からコントローラーのアクションを呼び出して html を取得できたことう方法で実施しました。
コードの例は次の通りです。
public ActionResult TestAsync(string id) { string viewName = "PartialView1"; ViewData.Model = "model data"; using (StringWriter sw = new StringWriter()) { var viewResult = ViewEngines.Engines.FindPartialView(this.ControllerContext, viewName); ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw); viewResult.View.Render(viewContext, sw); return Content(sw.GetStringBuilder().ToString()); } }
細かいテストはしていませんが、意外に動作したので覚えが書きとして記載しました。コードサンプルは下記のページを参考にさせていただきました。
ASP.NET MVC Razor: How to render a Razor Partial View's HTML inside the controller action
http://stackoverflow.com/questions/4344533/asp-net-mvc-razor-how-to-render-a-razor-partial-views-html-inside-the-controll
さんのコメント: さんのコメント: