首页 > 解决方案 > .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 并且工作顺利。

标签: asp.net-corerazorblazor

解决方案


我认为这与 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;
}

推荐阅读