ASP.NET MVC中 在controller 里将 Partial View 转化为字符串的方法

namespace Common.Helper
{
    public static class ControllerExtension
    {
        //根据部分视图名称,把部分视图内容转换成字符串
        public static string RenderPartialViewToString(this Controller controller, string partialViewName)
        {
            return controller.RenderPartialViewToString(partialViewName, null);
        }

        //根据部分视图名称和model,把部分视图内容转换成字符串
        public static string RenderPartialViewToString(this Controller controller, string partialViewName, object model)
        {
            //如果partialViewName为空,就把action名称作为部分视图名称
            if (string.IsNullOrEmpty(partialViewName))
            {
                partialViewName = controller.ControllerContext.RouteData.GetRequiredString("action");
            }

            //把model放到Controller.ViewData.Model属性中
            controller.ViewData.Model = model;

            using (var sw = new StringWriter())
            {
                //通过视图引擎,在当前ControllerContext中,根据部分视图名称获取ViewEngineResult类型
                var viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, partialViewName);

                //创建ViewContext
                var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData,
                    controller.TempData, sw);

                //把内容写到StringWriter中
                viewResult.View.Render(viewContext, sw);

                //StringWriter→string
                return sw.GetStringBuilder().ToString();
            }
        }
    }
}

 

ASP.NET MVC中 在controller 里将 Partial View 转化为字符串的方法,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。