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

NET 5.0 ASP.NET项目调用WebGrid.GetHtml报IHtmlString未找到如何解决

问题根因

你使用的WebGrid是传统ASP.NET .NET Framework时代的组件,依赖System.Web程序集,但.NET 5属于.NET Core生态,完全移除了System.Web相关的实现,所以才会报IHtmlString找不到的错误,该问题并非NuGet包版本不匹配导致,属于组件适配体系错误。

修复方案
  • 第一步:卸载当前项目中所有第三方WebGrid相关NuGet包,这类包本质是为.NET Framework适配的,无法兼容.NET 5生态。
  • 第二步:根据使用场景选择.NET Core生态下的替代方案:
    • 简单表格展示场景:直接用原生Razor语法手写表格即可,代码示例如下:
      @model IEnumerable<你的数据实体类型>
      <table class="table table-bordered">
          <thead>
              <tr>
                  <th>@Html.DisplayNameFor(model => model.First().字段名1)</th>
                  <th>@Html.DisplayNameFor(model => model.First().字段名2)</th>
                  <th>操作</th>
              </tr>
          </thead>
          <tbody>
              @foreach (var item in Model)
              {
                  <tr>
                      <td>@Html.DisplayFor(modelItem => item.字段名1)</td>
                      <td>@Html.DisplayFor(modelItem => item.字段名2)</td>
                      <td>
                          <a asp-action="Edit" asp-route-id="@item.Id">编辑</a> |
                          <a asp-action="Details" asp-route-id="@item.Id">详情</a> |
                          <a asp-action="Delete" asp-route-id="@item.Id">删除</a>
                      </td>
                  </tr>
              }
          </tbody>
      </table>
      
    • 需要分页、排序、筛选等复杂功能场景:使用.NET Core生态成熟的表格组件GridMvcCore,安装对应版本的NuGet包后按文档配置即可,功能比传统WebGrid更丰富。
  • 第三步:清理解决方案,删除项目根目录下的bin、obj文件夹后重新生成项目,报错即可消除。
额外注意事项

.NET 5+不再使用web.config作为全局配置文件,数据库连接字符串应该写在appsettings.json中,通过依赖注入的方式读取配置,你额外新增的web.config仅在部署到IIS时会用到部分配置,不要直接沿用.NET Framework的配置习惯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:45:01