代码库-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 Web Form 前后台传值

asp.net mvc 分页之后Request.Form获取不到数据

Asp.Net MVC:如何获取当前控制器/视图的虚拟 url?

如何在 ASP.Net MVC 5 视图中获取 ApplicationUser 的自定义属性值?

ASP.NET MVC5 视图预编译