.NET MVC后台获得VIEW对应的html
一、.Net Core Mvc下获得
建立一个帮助类,如下:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewEngines;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks; namespace NetCorePortal.Models
{
public class ViewHtmlHelper
{
public static string ConvertToString(Controller controller, string viewName, object viewModel, bool isMainPage)
{
controller.ViewData.Model = viewModel;
using (StringWriter sw = new StringWriter())
{
IViewEngine viewEngine = controller.HttpContext.RequestServices.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;
ViewEngineResult viewEngineResult = viewEngine.FindView(controller.ControllerContext, viewName, isMainPage);
if (viewEngineResult.Success)
{
ViewContext viewContext = new ViewContext(
controller.ControllerContext,
viewEngineResult.View,
controller.ViewData,
controller.TempData,
sw,
new HtmlHelperOptions()
);
viewEngineResult.View.RenderAsync(viewContext);
return sw.GetStringBuilder().ToString();
}
else
{
return $"视图{viewName}不存在";
}
}
}
}
}
后台调用方法
public ContentResult ViewToStringDemo()
{
string strView = ViewHtmlHelper.ConvertToString(this, "Index", "", true);
return Content(strView);
}
参考自:https://www.cjavapy.com/article/147/
二、.Net Mvc下获得
/// <summary>
/// 获得LayTreeGrid视图的HTML内容
/// </summary>
/// <returns></returns>
public ContentResult ViewText()
{
string html = string.Empty;
IView view = ViewEngines.Engines.FindView(this.ControllerContext, "LayTreegrid", null).View; ViewDataDictionary vdd = new ViewDataDictionary();
TempDataDictionary tdd = new TempDataDictionary();
using (System.IO.StringWriter sw = new System.IO.StringWriter())
{
ViewContext viewContext = new ViewContext(this.ControllerContext, view, vdd, tdd, sw);
viewContext.View.Render(viewContext, sw);
html = sw.ToString();
}
return Content(html);
}
.NET MVC后台获得VIEW对应的html的更多相关文章
- ASP.NET MVC Controller向View传值的几种方式
上几篇博文提到MVC和WebForm的区别,主要是MVC的Controller和View将传统的WebForm的窗体和后台代码做了解耦,这篇博文简单介绍一下在MVC中Controller向View是如 ...
- MVC -- 后台RedirectToAction传递实体类与字符串
1.MVC -- 后台RedirectToAction传递实体类 RedirectToAction(控制器,控制器方法,实体类) 2.MVC -- 后台RedirectToAction传递字符串 Re ...
- MVC后台传dt数据
//MVC后台传dt数据 public JsonResult TeacherVoteInfo([FromBody]Teacher_VoteModel model) { string tname = m ...
- MVC中视图View向控制器传值的方法
MVC中视图View向控制器传值的方法步骤如下: 1.index页面: 页面中只需要一个触发事件的按钮
- MVC(Model(模型) View(视图) Controller(控制器))
复习 1. 商品表 增删改查 index.php add.php view.php edit.php action.php 2. MVC(Model(模型) Vie ...
- ASP.NET MVC 后台接收集合参数和 jquery ajax 传值
MVC 接收参数数组(集合) 示例样本: public class Person { public string FirstName { get; set; } publi ...
- MVC(Model View Controller)框架
MVC框架 同义词 MVC一般指MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一 ...
- 序列化json对象,通过ajax传入asp.net mvc后台
序列化json对象,通过ajax传入asp.net mvc后台 序列化json对象,通过ajax传入asp.net mvc后台 今天遇到一个问题,准备把组织好的json对象通过jquery.aja ...
- ASP.NET没有魔法——ASP.NET MVC Razor与View渲染
对于Web应用来说,它的界面是由浏览器根据HTML代码及其引用的相关资源进行渲染后展示给用户的结果,换句话说Web应用的界面呈现工作是由浏览器完成的,Web应用的原理是通过Http协议从服务器上获取到 ...
随机推荐
- 腾讯短信+SpringBoot+Redis实现注册逻辑
使用redis做缓存实现用户的注册功能: 异步请求发送短信,给 发送短信的按钮 绑定异步事件 调用发送短信逻辑发送短信 缓存 key1:验证码 缓存 key2:短信发送时刻的时间 用户提交表单 包含用 ...
- distinct关键字对执行计划的影响
一.前言 最近看到一段话,"count(distinct 列名)若列上有索引,且有非空约束或在where子句中使用is not null,则会选择索引快速全扫描.其余情况则选择全表扫描&qu ...
- 使用 Polly 实现复杂策略(超时重试)
一.背景 第一次接触 Polly 还是在做某个微服务系统的时候,那时只会使用单一的超时策略与重试策略,更加高级的特性就没有再进行学习了.最近开为某个客户开发 PC 端的上位机的时候,客户有个需求,在发 ...
- ASP.NET Core 2.2 WebApi 系列【一】搭建ASP.NET Core WebApi项目
一.步骤 从“文件”菜单中选择“新建”>“项目” . 选择“ASP.NET Core Web 应用程序”模板,再单击“下一步” . 将项目命名为 NetCoreWebApi,然后单击“创建” . ...
- 三大免费开源的php语言cms系统 用好它们让你一天建好一个网站
php语言只所以在web开发领域占据半壁江山,是因为它有太多的生态,成熟的框架体系,广泛的开源cms系统.建设网站的时候,都想提升开发效率,效率就是成本,如果你用原生php语言开发一个项目,既要设计数 ...
- Linux find 用法和参数
Linux中find常见用法 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数: ...
- linux学习(六)计划任务命令
目录 at命令 @(计划任务命令) at命令 at命令用于指定在未来某一时间执行一个任务,该任务只能被执行一次 at [选项] [时间] f:指定包含具体指令的任务文件 q:指定新任务队列名称 l:显 ...
- tensorflow 资源汇总-docker 运行 tensorflow-gpu on nvidia support
tensorflow 容器运行过程中使用到的命令记录: 使用image启动容器命令: docker run --name=: tensorflow/tensorflow:latest-gpu-py3- ...
- 电池的QPNP模式
名词解释: CV:Constant Voltage恒压 SMMB charger:Switch-ModeBattery Charger and Boost peripheral开关模式电池充电器和升压 ...
- R-3 t分布--t置信区间--t检验
本节内容: 1:t分布存在的意义是什么 2:t分布的置信区间 3:t分布检验 一.t分布存在的意义是什么 数据分析中有一块很大的版图是属于均值对比的,应用广泛. 例如:对比试验前后病人的症状,证明某种 ...