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

未勾选支持页面视图的Razor类库如何使用Html.Raw/HtmlString?

解决未勾选“支持页面和视图”的Razor类库输出未转义HTML的问题

当使用未勾选“支持页面和视图”的Razor类库模板时,项目默认仅包含*.razor文件,且未引用Microsoft.AspNetCore.App框架,导致无法访问HtmlString、Html.Raw这类功能,同时尝试添加Microsoft.AspNetCore.App.Ref包会提示“项目不是DotNetPlatform项目”错误。以下是可行的解决办法:

方法一:使用Blazor原生的MarkupString(推荐)

Blazor本身提供了MarkupString类型,用于直接渲染未转义的HTML,无需依赖Mvc相关的HtmlHelper:

// 在组件中定义未转义的HTML内容
private MarkupString RawHtml => new MarkupString("<strong>这是未转义的HTML</strong>");

在Razor组件中直接使用:

@RawHtml

该方式是Blazor项目输出未转义HTML的标准做法,完全适配当前Razor类库的场景。

方法二:手动引用Mvc ViewFeatures程序集

如果必须使用HtmlString或Html.Raw,可以直接添加对Microsoft.AspNetCore.Mvc.ViewFeatures.dll的引用:

  1. 右键项目 → 添加 → 引用 → 浏览
  2. 导航到路径:C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\8.0.3\ref\net8.0\Microsoft.AspNetCore.Mvc.ViewFeatures.dll(版本号根据你的.NET版本调整)
  3. 添加引用后,即可在代码中使用HtmlString:
using Microsoft.AspNetCore.Mvc.Rendering;

private HtmlString GetRawHtml()
{
    return new HtmlString("<em>通过HtmlString输出的未转义内容</em>");
}

注意:此方式依赖Mvc相关组件,可能会引入不必要的依赖,仅在特殊需求下使用。

关键说明

  • 独立的TagHelpers和Html.Abstractions NuGet包已被弃用,所有相关功能整合至Microsoft.AspNetCore.App框架,但未勾选“支持页面和视图”的Razor类库默认不会引用该框架,因此无法直接访问。
  • Microsoft.AspNetCore.App.Ref是平台引用包,仅适用于.NET平台项目(如Web应用),普通类库无法添加该引用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:41:14