热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

后台获取视图对应的字符串

1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac

1.帮助类

技术分享技术分享
    /// 
    /// 后台获取视图对应的字符串
    /// 
    public class ViewHelper
    {

        /// 
        /// 将View输出为字符串
        /// (注:不会执行对应的action方法)
        /// 
        /// Controller实例
        /// 如果view文件在当前Controller目录下,则直接输入文件名(例如:Toolbar)
        /// 否则,从根路径开始指定(例如:~/Views/User/Toolbar.cshtml)
        /// 
        /// 模板页文件名(注:显示指定可修改Layout)
        /// 
        public static string RenderViewToString(Controller controller, string viewName, string masterName)
        {
            IView view = ViewEngines.Engines.FindView(controller.ControllerContext, viewName, masterName).View;

            using (StringWriter sw = new StringWriter())
            {
                ViewContext viewContext = new ViewContext(controller.ControllerContext, view, controller.ViewData, controller.TempData, sw);
                viewContext.View.Render(viewContext, sw);
                return sw.ToString();
            }
        }
        /// 
        /// 将PartialView输出字符串
        /// 
        /// controller实例
        /// 如果PartialView文件在当前Controller目录下,则直接输入文件名(例如:Toolbar);
        /// 否则,从根路径开始指定(例如:~/View/User/Toolbar.cshtml)
        /// 
        /// 构造页面所需要的实体参数
        /// 字符串
        public static string ReaderPartialViewToString(Controller controller, string viewName, object model)
        {
            IView view = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName).View;
            controller.ViewData.Model = model;
            using (StringWriter sw = new StringWriter())
            {
                ViewContext viewContext = new ViewContext(controller.ControllerContext, view, controller.ViewData, controller.TempData, sw);

                viewContext.View.Render(viewContext, sw);

                return sw.ToString();
            }
        }
    }
View Code

2.使用验证

1.

        public ActionResult Index()
        {
            //后台加载其他视图为字符串没有母版页
            ViewBag.tempOne= ViewHelper.RenderViewToString(this, "TempOne", null);
            return View();
        }
        public ActionResult IndexTwo()
        {
            //后台加载其他视图的字符串,带有母版页
            //ViewBag.tempTwo = ViewHelper.RenderViewToString(this, "TempTwo", null);

            //后台指定修改母版页 ,并生成字符串
            ViewBag.tempTwo = ViewHelper.RenderViewToString(this, "TempTwo", "_Layout");
            return View();
        }
        //不使用母版页
        public ActionResult TempOne()
        {
            return View();
        }
        //使用母版页
        public ActionResult TempTwo()
        {
            ////获取 可用字体字符数组
            //string[] nameList = FontFamily.Families.Select(q => q.Name).ToArray();
            //ViewBag.nameList = nameList;
            return View();
        }

2.

        public ActionResult Index()
        {
            //后台加载其他controller 的 视图,并生成字符串
            ViewBag.tempTwo = ViewHelper.RenderViewToString(this, "~/Views/ViewOne/TempTwo.cshtml", null);

            return View();
        }

3.

        public ActionResult Index()
        {
            //显示主视图
            //ViewBag.tempOne= ViewHelper.RenderViewToString(this, "~/views/viewone/TempOne.cshtml", null);
            //作为主视图显示,会加载母版页
            //ViewBag.tempTwo = ViewHelper.RenderViewToString(this, "PartialTwo",null);


            //作为部分视图显示,不会加载母版页,会过滤到部分标签(head,body)
            //ViewBag.tempTwo = ViewHelper.ReaderPartialViewToString(this, "PartialTwo", null);
            //ViewBag.tempTwo = ViewHelper.ReaderPartialViewToString(this, "~/views/viewone/TempOne.cshtml", null);

            //作为部分视图显示,传递参数
            ViewBag.tempTwo = ViewHelper.ReaderPartialViewToString(this, "PartialTwo", new int[] { 1, 2, 3 });

            return View();
        }
        //部分视图
        public PartialViewResult PartialTwo()
        {
            return PartialView();
        }

后台获取视图对应的字符串


推荐阅读
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 在Notepad++中配置Markdown语法高亮及实时预览功能
    本文详细介绍了如何在Notepad++中配置Markdown语法高亮和实时预览功能,包括必要的插件安装和设置步骤。 ... [详细]
  • 探讨如何在映射文件中处理重复的属性字段,以避免数据操作时出现错误。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
  • 本文探讨了一种常见的C++面试题目——实现自己的String类。通过此过程,不仅能够检验开发者对C++基础知识的掌握程度,还能加深对其高级特性的理解。文章详细介绍了如何实现基本的功能,如构造函数、析构函数、拷贝构造函数及赋值运算符重载等。 ... [详细]
  • 3DSMAX制作超现实的体育馆模型
    这篇教程是向脚本之家的朋友介绍3DSMAX制作超现实的体育馆模型方法,教程制作出来的体育馆模型非常地不错,不过教程有点难度,需要有一定基础的朋友学习,推荐到脚本之家,喜欢的朋友可 ... [详细]
  • 本文介绍了如何在AngularJS应用中使用ng-repeat指令创建可单独点击选中的列表项,并详细描述了实现这一功能的具体步骤和代码示例。 ... [详细]
  • 在项目冲刺的最后一天,团队专注于软件用户界面的细节优化,包括调整控件布局和字体设置,以确保界面的简洁性和用户友好性。 ... [详细]
  • 探索Java 11中的ZGC垃圾收集器
    Java 11引入了一种新的垃圾收集器——ZGC,由Oracle公司研发,旨在支持TB级别的内存容量,并保证极低的暂停时间。本文将探讨ZGC的开发背景、技术特点及其潜在的应用前景。 ... [详细]
author-avatar
mobiledu2502898533
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有