• mvc部分视图转换成html字符串


    public static class RenderViewTostring
        {
            /// <summary>
            ///将部分视图转成html 字符串方便我们扩展使用
            /// </summary>
            /// <param name="controller">The controller.</param>
            /// <param name="viewName">Name of the view.</param>
            /// <param name="model">The model.</param>
            /// <returns></returns>
            public static string RenderPartialView(this Controller controller, string viewName)
            {
                return RenderPartialView(controller, viewName, null);
            }
            /// <summary>
            ///将部分视图转成html 字符串方便我们扩展使用
            /// </summary>
            /// <param name="controller">The controller.</param>
            /// <param name="viewName">Name of the view.</param>
            /// <param name="model">The model.</param>
            /// <returns></returns>
            public static string RenderPartialView(this Controller controller, string viewName, object model)
            {
                if (string.IsNullOrEmpty(viewName))
                    viewName = controller.ControllerContext.RouteData.GetRequiredString("action");
    
                controller.ViewData.Model = model;
                using (var sw = new StringWriter())
                {
                    ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
                    var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
                    viewResult.View.Render(viewContext, sw);
                    // return sw.Encoding.EncodingName;
                    return sw.GetStringBuilder().ToString();
                }
            }
            /// <summary>
            /// 部分视图转成html 
            /// viewbag 和viewdata 访问是相通的.
            /// ViewData["Hello"] = "Hello Boy!";
            /// view ViewBag.Hello 就是访问上面这个;
            /// </summary>
            /// <param name="controller">The controller.</param>
            /// <param name="viewName">Name of the view.</param>
            /// <param name="model">The model.</param>
            /// <param name="viewdataary">键值形式的对象</param>
            /// <returns></returns>
            public static string RenderPartialView(this Controller controller, string viewName, object model, params KeyValuePair<string, object>[] viewdataary)
            {
                if (string.IsNullOrEmpty(viewName))
                    viewName = controller.ControllerContext.RouteData.GetRequiredString("action");
                controller.ViewData.Model = model;
                if (viewdataary != null && viewdataary.Any())
                {
                    foreach (var item in viewdataary)
                    {
                        controller.ViewData.Add(item);
                    }
                }
                return ControllserRenderView(controller, viewName);
            }
    
            /// <summary>
            /// Controllsers the render view.
            /// </summary>
            /// <param name="controller">The controller.</param>
            /// <param name="viewName">Name of the view.</param>
            /// <returns></returns>
            private static string ControllserRenderView(Controller controller, string viewName)
            {
                using (var sw = new StringWriter())
                {
                    ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
                    var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
                    viewResult.View.Render(viewContext, sw);
                    return sw.GetStringBuilder().ToString();
                }
            }
        }
  • 相关阅读:
    Mybatis plus 配置
    logback配置
    iview-ui-project-4.0 安装与配置
    Linux系统下Redis安装与配置
    Java中枚举的用法
    Mysql 查询所有课程的成绩第2名到第3名的学生信息及该课程成绩
    java 基础知识一 初识java
    docker 查看 挂载目录
    sqlserver统计所有表及表中记录数
    centos7配置禁用ipv6
  • 原文地址:https://www.cnblogs.com/songshuai/p/10132007.html
Copyright © 2020-2023  润新知