代码库-Asp.net后台解析View获取视图String
Posted zhang_xinxiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码库-Asp.net后台解析View获取视图String相关的知识,希望对你有一定的参考价值。
分享个代码,在mvc项目中,经常会在后端获取前端的视图html,下段代码就是在后台解析视图引擎获取到前端的页面(html)文本的。
public class RenderRazorViewToString
/// <summary>
/// 后台解析视图ViewResult获取到对应的html文本
/// </summary>
/// <param name="context">视图ViewResult所在的Controller</param>
/// <param name="actionName">需要解析的视图的方法名</param>
/// <param name="model">视图在加载时用到的数据模型</param>
/// <returns></returns>
public string Render(ControllerContext context, string actionName, object model)
//解析视图View获取的html文本
string viewStr = "";
//设置控制器的解析模型
context.Controller.ViewData.Model = model;
using (StringWriter sw = new StringWriter())
//获取到视图解析后的View
var viewResult = ViewEngines.Engines.FindPartialView(context, actionName);
//生成对应的View内容
var viewContext = new ViewContext(context, viewResult.View, context.Controller.ViewData, context.Controller.TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(context, viewResult.View);
viewStr = sw.GetStringBuilder().ToString();
return viewStr;
上段代码可以在后台解析获取前端的html文本,可以根据传参获取。一般在后台使用的场景是:后台要获取前端的html文本作为参数传递给某个程序,非特殊情况不建议使用此方法来解析。
以上是关于代码库-Asp.net后台解析View获取视图String的主要内容,如果未能解决你的问题,请参考以下文章
asp.net mvc2.0中如何将datatable对象传到view的前台然后获取datatable中表字段得值?
asp.net mvc 分页之后Request.Form获取不到数据
Asp.Net MVC:如何获取当前控制器/视图的虚拟 url?