在Asp.net MVC的实际开发中,有时需要在后台代码中获取某个View 或者 PartialView 生成的字符串,示例如下:

1. 将View文件输出为字符串:

      /// <summary>
/// 将View输出为字符串
/// </summary>
/// <param name="controller">Controller实例</param>
/// <param name="viewName">如果view文件在当前Controller目录下,则直接输入文件名(例:Toolbar);否则,从根路径开始指定(例:~/Views/User/Toolbar.cshtml)</param>
/// <param name="masterName">母板页文件名</param>
/// <returns>字符串</returns>
protected static string RenderViewToString(Controller controller, string viewName, string masterName)
{
IView view = ViewEngines.Engines.FindView(controller.ControllerContext, viewName, masterName).View;
using (StringWriter writer = new StringWriter())
{
ViewContext viewContext = new ViewContext(controller.ControllerContext, view, controller.ViewData, controller.TempData, writer);
viewContext.View.Render(viewContext, writer);
return writer.ToString();
}
}

2.将PartialView文件输出为字符串

 1      /// <summary>
2 /// 将PartialView输出为字符串
3 /// </summary>
4 /// <param name="controller">Controller实例</param>
5 /// <param name="viewName">如果PartialView文件在当前Controller目录下,则直接输入文件名(例:Toolbar);否则,从根路径开始指定(例:~/Views/User/Toolbar.cshtml)</param>
6 /// <param name="model">构造页面所需的的实体参数</param>
7 /// <returns>字符串</returns>
8 public static string RenderPartialViewToString(Controller controller, string viewName,object model)
9 {
10 IView view = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName).View;
11 controller.ViewData.Model = model;
12 using (StringWriter writer = new StringWriter())
13 {
14 ViewContext viewContext = new ViewContext(controller.ControllerContext, view, controller.ViewData, controller.TempData, writer);
15 viewContext.View.Render(viewContext, writer);
16 return writer.ToString();
17 }
18 }

<script type="text/javascript"><!-- google_ad_client = "ca-pub-1944176156128447"; /* cnblogs 首页横幅 */ google_ad_slot = "5419468456"; google_ad_width = 728; google_ad_height = 90; //--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

最新文章

  1. [C1] C1FlexGrid 行列增删&amp;单元格合并拆分
  2. “static”引发的一个错误
  3. Alpha版本十天冲刺--Day6
  4. 安卓发展史以及安卓和苹果对比PPT
  5. iOS:等待控件
  6. BZOJ2276: [Poi2011]Temperature
  7. Hadoop Failed to set permissions of path
  8. 数据画图 jpgraph &amp; chart.js
  9. asp.net 网站所有请求跳转到同一个页面
  10. JavaScript中typeof和instanceof深入详解
  11. EF(二)Model Fiirst
  12. Representations of graphs
  13. Windows的奇巧淫技(为什么GIF显示不出来??)
  14. 08 python 初学(字典)
  15. 【第一章】zabbix3.4监控WindowsCPU使用率磁盘IO磁盘事件日志监控阈值邮件报警详细配置
  16. JS的call方法的作用解释,简单易懂
  17. histogram 和 bar plot的区别
  18. Leetcode 234 Palindrome Linked List 复杂度为时间O(n) 和空间(1)解法
  19. 安装Nginx并为node.js设置反向代理
  20. 【java排序】 归并排序算法、堆排序算法

热门文章

  1. vb.net 结束进程
  2. Gs_Class.Gs_DataFunction数据操作类库20160225
  3. C#中的DataSet添加DataTable问题
  4. jquery获取radio的值
  5. js输入框对金额的匹配
  6. HDU 4998 Rotate (计算几何)
  7. mycat 概述
  8. 用VB把xlsx转换为xls
  9. Python朝花夕拾
  10. ubuntu 16.04下搭建web服务器(MySQL+PHP+Apache) 教程