Asp.Mvc将生成的视图保存为字符串

    public static class ViewExtensions
    {
        /// <summary>
        /// 在控制器内获取指定视图生成后的HTML
        /// </summary>
        /// <param name="context">当前控制器的上下文</param>
        /// <param name="viewName">视图名称</param>
        /// <param name="model">视图所需要的参数</param>
        /// <returns>视图生成的HTML</returns>
        public static string GetViewHtml(this ControllerContext context, string viewName, Object param)
        {
            if (string.IsNullOrEmpty(viewName))
                viewName = context.RouteData.GetRequiredString("action");

            context.Controller.ViewData.Model = param;

            using (var sw = new StringWriter())
            {
                ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(context, viewName);
                var viewContext = new ViewContext(context,
                                                  viewResult.View,
                                                  context.Controller.ViewData,
                                                  context.Controller.TempData,
                                                  sw);
                try
                {
                    viewResult.View.Render(viewContext, sw);
                }
                catch (Exception ex)
                {
                    throw;
                }

                return sw.GetStringBuilder().ToString();
            }
        }
    }

效果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菜鸟前端工程师

react-开发经验分享-form表单组件中封装一个单独的input

46440
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支

步骤设置完毕之后,就要设置好流转了,比如财务申请大于50000元(请假天数>5天)要总经理审批,否则财务审批之后就结束了。 ? 设置分支没有任何关注点,我们把关...

37170
来自专栏西安-晁州

golang学习之mgo操作mongodb

mgo是mongodb的golang驱动,测试代码: // mgotest project main.go package main import ( ...

54400
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(55)-工作流设计-表单布局

前言:这一节比较有趣。基本纯UI,但是不是很复杂 有了实现表单的打印和更加符合流程表单方式,我们必须自定义布局来适合业务场景打印!我们想要什么效果?看下图 (我...

23890
来自专栏24K纯开源

一个简单的inno setup模板

一、模板代码     基本功能包括多路径安装、多语言、自定义图标。 [Setup] ShowLanguageDialog=yes AppCopyright=Co...

29850
来自专栏葡萄城控件技术团队

根据数据源字段动态设置报表中的列数量以及列宽度

在报表系统中,我们通常会有这样的需求,就是由用户来决定报表中需要显示的数据,比如数据源中共有八列数据,用户可以自己选择在报表中显示哪些列,并且能够自动调整列的宽...

208100
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(57)-插件---ueditor使用

目录: 前言 开发环境 知识点 初始使用 自定义工具栏 设置和读取编辑器内容 文件上传 ueditor加水印 -------------------------...

38050
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分支执行。 起草的同时,我们分解流转的规则中的审批人并保存,具体流程如下 接下来创建DrafCon...

26260
来自专栏Pythonista

Golang之Mysql操作

62320
来自专栏Python小屋

Python数据可视化案例三:使用Slider组件调整曲线参数

首先更正一个地方,昨天的文章Pythonic:递归、回溯等5种方法生成不重复数字整数中最后一段代码的注释中不小心把“排列”写成了“组合”,抱歉抱歉! 今天的内容...

35760

扫码关注云+社区

领取腾讯云代金券