【问题标题】:.NET Core Blazor Dynamically retreive html as string from Razor Page or Blazor Component.NET Core Blazor 从 Razor 页面或 Blazor 组件动态检索 html 作为字符串
【发布时间】:2020-12-27 16:46:30
【问题描述】:

我有一个 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-core razor blazor


    【解决方案1】:

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

    【讨论】:

    • 按照这里的代码,“字符串内容”,这里的“内容”是指文本形式的html?
    • 是的,没错,您将不得不使用另一个库将其转换为 pdf - 我假设您必须已经准备好了?
    • 是的,PDF 下载已经存在,我只需要 html 到字符串的动态转换,这样我就可以将字符串中继到 PD​​F 转换方法。先生,如果可能的话,你能帮我检索到这个内容字符串的 html。
    • 您可以使用File.ReadAllText将html读取为字符串
    • 您的文件路径好像不正确?但是没有任何代码就不能提供更多信息
    猜你喜欢
    • 2019-09-18
    • 1970-01-01
    • 2020-05-23
    • 2021-05-23
    • 2019-07-02
    • 1970-01-01
    • 2021-06-07
    • 2021-05-04
    • 1970-01-01
    相关资源
    最近更新 更多