コントローラーの中で 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