MVC 后台代码 获取分布页内容 html 内容

来源:互联网 发布:公司礼品 知乎 编辑:程序博客网 时间:2024/05/17 03:34
list => model 实体  View(list)Rate => ViewData["Rate"] = 1//初始化var model = new ViewDataDictionary(list) {     new KeyValuePair<string, object>("Rate", rate.ExchangeRate.Value) };  //调用RenderViewToString("area", "Controller", "Action", model)        /// <summary>        /// 获取控制器HTML        /// </summary>        /// <param name="areaName">areaName 域名称(可以为空,默认当前域)</param>        /// <param name="controllerName"> controllerName 控制器名称</param>        /// <param name="viewName">Action名称</param>        /// <param name="viewData"></param>        /// <returns></returns>        public static string RenderViewToString(string areaName, string controllerName, string viewName, object viewData)        {            using (var writer = new StringWriter())            {                var routeData = new RouteData();                if (!string.IsNullOrEmpty(areaName))                    routeData.DataTokens["area"] = areaName;                routeData.Values.Add("controller", controllerName);                var fakeControllerContext = new ControllerContext(new HttpContextWrapper(new HttpContext(new HttpRequest(null, "http://google.com", null), new HttpResponse(null))), routeData, new AdminController());                var razorViewEngine = new RazorViewEngine();                var razorViewResult = razorViewEngine.FindView(fakeControllerContext, viewName, "", false);                ViewContext viewContext;                if (viewData.GetType() != typeof(ViewDataDictionary))                {                    viewContext = new ViewContext(fakeControllerContext, razorViewResult.View, new ViewDataDictionary(viewData), new TempDataDictionary(), writer);                }                else                {                    viewContext = new ViewContext(fakeControllerContext, razorViewResult.View, viewData as ViewDataDictionary, new TempDataDictionary(), writer);                }                razorViewResult.View.Render(viewContext, writer);                razorViewResult.ViewEngine.ReleaseView(viewContext, razorViewResult.View);                return writer.ToString();            }        }
0 0
原创粉丝点击