确定剃须刀生成的视图中 html 表的大小
Determine size of html table in razor generated view
已编辑 我已经改写了这个问题,因为它被标记为太宽泛。
我正在使用 razor 引擎来创建强类型电子邮件模板,我想在生成的 HTML 中找到特定表格单元格的高度。
我正在像这样生成HTML
var templateService = new TemplateService();
var emailHtmlBody = templateService.Parse(File.ReadAllText(template.TemplateFilePath), template, null, null);
这将创建一个 html 字符串,是否可以使用 mvc 或 razor 引擎确定特定 html 元素的高度(动态(,或者我是否需要使用渲染引擎首先呈现 html,然后使用 JavaScript 查询等技术来获取值。
我在 WCF 应用程序中运行它,因此呈现引擎需要无头 - 标准的 .net 浏览器控件将不起作用。
我已经在第三方库上取得了成功(请参阅我提出的答案(,有没有更好的方法可以在不使用这些库的情况下做到这一点?
这决定了您将在哪里真正使用高度。如果你在页面中需要它,你可以随时使用 JavaScript。一种方法是给你的表一个id属性,并使用一个简单的JavaScript函数来确定该表的高度。此函数可以驻留在布局页面的末尾。
<script>
var tableHeight = 0;
$( document ).ready(function() {
tableHeight = document.getElementById('tableId').style.offsetheight;
});
</script>
之后,您可以在任何 JavaScript 代码中全局访问tableHeight
。另一方面,如果需要在服务器端代码上使用它,则需要将其分配给模型中托管的输入变量,并在[HttpPost]
操作方法中检索它。
我发现最简单的方法是解析视图,将生成的 html(使用所需的 JavaScript(保存到 Web 服务器(或本地,ymmv(,然后在无头浏览器中加载页面,如 SimpleBrowser.WebDriver
(替代方案awesomium
或webkit.net
- 显然您可以在无头模式下运行它们(,然后返回呈现的 html,为您提供从 js 脚本中所需的值。
将此标记为答案,但如果有任何更简单的方法,我会很感兴趣。
- 如何使用ExpressJS(在主视图/根视图上)呈现带有参数的HTML视图
- Angular数组更改时更新HTML视图
- 部分html视图's控制器未使用KendoPanelBar内容URL在指令模板URL中工作
- 将全局变量从控制器调用到HTML视图AngularJS
- 将数据从控制器调用到HTML视图AngularJS
- 将变量传递到html视图angularjs中
- 如何用程序禁用HTML视图源代码或加密HTML元素
- 在 Angular 控制器完成加载异步函数后加载 html 视图
- 如何在 Angular 中的基本 HTML 视图中加载视图
- 我可以在控制台中打印值,但不能在 html 视图中打印值
- ng-repeat显示的行等于属性的数量,甚至不在HTML视图上显示数据
- 为什么这些变量不在 html 视图中打印
- 如何将另一个Paper变量添加到JointJs的HTML视图中
- HTML视图在搜索(ajax)更新期间丢失状态
- 我如何传递node.js服务器变量到我的angular/html视图
- HTML视图看不到AngularJS
- 为多个客户端呈现html视图
- 将html视图转换为图像
- 我可以在chrome控制台使用javascript测试动态html视图吗?
- 无法用Angular从HTML视图获取值到控制器.解决方案返回$scope变量undefined