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();
}
}
}

mvc部分视图转换成html字符串的更多相关文章

  1. MVC扩展控制器, 把部分视图转换成字符串(带验证信息), 并以json传递给前端视图

    当我们使用jQuery异步提交表单数据的时候,需要把部分视图转换成字符串(带验证信息),以json的形式传递给前端视图.   使用jQuery异步加载部分视图,返回内容追加到页面某个div:   jQ ...

  2. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  3. DataTable转换成json字符串

    将DataTable里面的行转换成json字符串方法: #region DataTable转为json /// <summary> /// DataTable转为json /// < ...

  4. Newtonsoft.Json 把对象转换成json字符串

    var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount ...

  5. Java将其他数据格式转换成json字符串格式

    package com.wangbo.util; import java.beans.IntrospectionException; import java.beans.Introspector; i ...

  6. json 字符串转换成对象,对象转换成json字符串

    json   字符串转换成对象,对象转换成json字符串 前端: 方法一: parseJSON方法:   [注意jquery版本问题] var str = '{"name":&qu ...

  7. PDF转换成二进制字符串写入 HTTP 输出流

    最近项目需要做电子签章,需要网页打开PDF签章后保存:正好复习哈二进制和流的转换: 文件转换成二进制字符串写入HTTP输出流 protected void Page_Load(object sende ...

  8. JSON对象转换成JSON字符串

    1.问题背景 有一个json对象,需要将其转换成json字符串 JSON.stringify(obj) 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DT ...

  9. java 图片转换成base64字符串

    import java.io.ByteArrayOutputStream; import java.io.FileInputStream;import java.io.FileOutputStream ...

随机推荐

  1. thinkphp5.0引入类

    /application/index/controller/Test.php <?php namespace app\index\controller; 当前命名空间名称 use think\C ...

  2. ZoomCharts

    net chart 配置links没有id的话,画图的links会丢失

  3. tensorflow 调参过程

    1. optimizer = tf.train.GradientDescentOptimizer(0.1) 参数小,loss减少的慢:参数大,出现Nan问题 2. optimizer = tf.tra ...

  4. Python全栈之路----常用模块----logging模块

    很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...

  5. Jmeter并发测试

    链接推荐:https://blog.csdn.net/weixin_41291554/article/details/80492276

  6. MySQL_视图

    MySQL 视图 (http://www.cnblogs.com/chenpi/p/5133648.html) 1.什么是视图 通俗的讲,视图就是一条SELECT语句执行后返回的结果集.所以我们在创建 ...

  7. VMWare安装

    1. VMware 的下载和安装 VMware Workstation 15 Pro for Windows(64 位)的下载地址如下: 官方试用版地址:http://www.vmware.com/c ...

  8. JDBC-Oracle连接教程

    前言 本文通过一个在Eclipse平台中搭建的小项目,在项目中使用一条静态命令来查询Oracle数据库测试用户“scott”下emp表中的几个字段,来学习JDBC连接数据库的方法.看完之后读者可以基本 ...

  9. C# DataView数据处理的几种方法

    1.找到刚删除的所有列 DataView dv = dt.DefaultView; dv.Delete(); dv.Delete(); //找出所有刚删除掉的行 1.5 dv.RowStateFilt ...

  10. 对thinkphp5.0框架的实例学习

    不论是渗透测试还是代码审计的过程中会碰到用不同的框架搭建起来的网站,熟悉这些框架的基本原理,会帮助我们快速的理解漏洞原理,提高干活效率,所以自己本地搭了个php环境,来入门实例学习下thinkphp5 ...