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