asp.net-core - .NET Core Blazor 从 Razor 页面或 Blazor 组件动态检索 html 作为字符串
问题描述
我有一个 Razor 页面 (.cshtml),它是一个 PDF 模板。现在我需要从页面本身检索 html 作为字符串以将其保存为 PDF 文件。在 MVC 中,我可以使用 IRazonEngine 接口。但是在 Blazor 中可以使用什么来获得这个。
此外,如果我可以使用 Blazor 组件而不是 Razor 页面,我如何获取 HTML 字符串?
请帮忙!
这是我拥有的示例 Razor 页面
@model UserModel
<div>
<strong>Full Name:</strong>
<div>@Html.DisplayFor(model => model.FullName)</div>
</div>
<div>
<strong>Address:</strong>
<div>@Html.DisplayFor(model => model.Address);</div>
</div>
<div>
<strong>DOB:</strong>
<div>@Html.DisplayFor(model => model.DateOfBirth);</div>
</div>
更新: 我现在使用 RazorLight.NETCore3 并且工作顺利。
解决方案
我认为这与 blazor 或 mvc 页面无关,但您可以使用RazorEngine.NetCore库来转换 cshtml 并使用模型填充动态数据并检索完成的 html。
这是有关如何操作的指南:https ://khalidabuhakmeh.com/generate-outputs-with-razor-engine-in-dotnet-core
Github 项目:https ://github.com/fouadmess/RazorEngine
这是我过去使用的一个简单代码:
public string CompileContent(string content, object model)
{
var stringContent = Engine.Razor.RunCompile(content, Guid.NewGuid().ToString(), null, model);
return stringContent;
}
推荐阅读
- java - Libgdx 从 Image 或 Drawable 中获取纹理
- scala - 将用 SCALA 编写的 Spark UDF 转换为 JAVA
- python - dict变量后的方括号是什么意思
- python - Youtube 下载进度条问题
- reactjs - 未捕获的错误:目标容器不是 DOM 元素。在反应
- tensorflow - 更改图像标题模型中的标记名称会影响性能吗?
- ios - 快速使用计时器
- keras - ValueError:两个形状中的维度 1 必须相等,但分别为 10 和 1
- python - Python - 比较 2 列和 2 行中的 TS
- ssh - Ansible 无法通过 SSH 连接到远程主机:“控制路径不存在”和“mux_client_read_packet: read header failed: Broken pipe”