You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Razor组件中渲染HTM文件?

解决Blazor中渲染HTML文件内容显示源码的问题

直接用MarkupString替代HtmlString即可实现HTML内容的渲染,以下是优化后的代码:

服务器端Blazor/Blazor Server方案

<div>
    @((MarkupString)content)
</div>

@code {
    private string fileName = "wwwroot/HelpDocs/691_New Booking.htm";
    private string content = string.Empty;

    protected override void OnInitialized()
    {
        // 先检查文件是否存在,避免报错
        if (File.Exists(fileName))
        {
            content = File.ReadAllText(fileName);
        }
        else
        {
            content = "<p>帮助文档未找到</p>";
        }
    }
}

Blazor WebAssembly方案

如果是WASM项目,不能直接读取本地文件,需通过HTTP请求获取wwwroot下的资源:

@inject HttpClient Http

<div>
    @((MarkupString)content)
</div>

@code {
    private string content = string.Empty;

    protected override async Task OnInitializedAsync()
    {
        try
        {
            // 路径不需要带wwwroot,直接从根目录开始
            content = await Http.GetStringAsync("HelpDocs/691_New Booking.htm");
        }
        catch
        {
            content = "<p>帮助文档加载失败</p>";
        }
    }
}

关键说明

  • MarkupString是Blazor专门用于渲染未编码HTML的类型,会直接解析字符串中的HTML标签,而非显示源码。
  • 路径统一使用正斜杠,或用Path.Combine构建跨平台兼容路径,避免混合斜杠导致的文件找不到问题。

内容的提问来源于stack exchange,提问作者Steve Cross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:02:45