【问题标题】:Render Blazor component to static HTML and return it as stream将 Blazor 组件渲染为静态 HTML 并将其作为流返回
【发布时间】:2021-02-02 00:31:35
【问题描述】:

是否可以将 blazor 组件呈现为字符串,以便我可以呈现静态 HTML。我知道哪里有路 将 MVC 视图呈现为字符串。我需要做的是创造一种方法来创建静态 HTML 页面,该页面将下载到 WPF 应用程序,然后用户可以在浏览器中打开它? 这是 MVC 应用程序的流行答案:How to render an ASP.NET MVC view as a string? 那么 Blazor 有类似的东西吗?我不需要在 Blazor 中执行此操作,但 Web 是在 Blazor 中完成的,所以会很好。

【问题讨论】:

  • 我相信RenderFragment是你需要的,这篇文章有用吗? blazor-university.com/…
  • 我刚刚发现有一个名为 bUnit 的库,但我不确定这是不是最好的方法:github.com/egil/bUnit
  • bUnit,用于测试。要将字符串模板传递给您的组件,您需要 RenderFragment。
  • 是的,但是它有获取渲染片段的方法: var component = ctx.RenderComponent(); var html = component.Markup;
  • 在 Blazor 中,您可以通过 RenderFragment 将字符串、简单字符串转换为 HTML,我认为这里不需要另一个依赖项。

标签: c# asp.net-mvc blazor blazor-server-side blazor-client-side


【解决方案1】:

来自 Blazor .Net 5 RC1 https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-release-candidate-1/#blazor-webassembly-prerendering

在您的托管应用程序中,您可以使用带有 render-mode="Static"render-mode="WebAssemblyPrerendered" 的组件标签助手

@page "/static-counter"
@namespace Server.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

<component type="typeof(Client.Shared.MyComponent)" render-mode="WebAssemblyPrerendered" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-03
    • 2018-08-24
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多