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

VS2022控制台应用添加System.Web.UI依赖失败,求助解决方案

问题根源

你当前在VS2022里创建的大概率是.NET Core/.NET 5+项目,这类现代.NET框架已经完全移除了System.Web命名空间(包括其中的UI控件),而旧版VS默认创建的是.NET Framework项目,所以之前能正常运行。手动添加.NET Framework的System.Web.dll会因为框架不兼容被拒绝,这是正常现象。

解决办法

方案1:切换到.NET Framework项目

  • 打开VS2022,新建项目时选择控制台应用(.NET Framework),挑选一个合适的.NET Framework版本(推荐4.8)
  • 把你的代码复制到新项目中,此时不需要额外添加引用——.NET Framework默认包含System.Web程序集
  • 直接运行即可生成预期的HTML表格

方案2:在现代.NET框架中用替代方案生成HTML

如果不想切换框架,你可以用字符串拼接或者ASP.NET Core提供的TagBuilder类来生成HTML:

方式A:简单字符串拼接(无需额外依赖)
using System.Text;

var htmlBuilder = new StringBuilder();
htmlBuilder.Append("<table>")
           .Append("<tr>")
           .Append("<td>Some text... Istanbul</td>")
           .Append("</tr>")
           .Append("</table>");

string html = htmlBuilder.ToString();
Console.Write(html);
方式B:用TagBuilder(更规范,适合复杂场景)
  1. 在NuGet包管理器中安装Microsoft.AspNetCore.Mvc.ViewFeatures
  2. 使用以下代码:
using Microsoft.AspNetCore.Mvc.Rendering;
using System.IO;
using System.Text.Encodings.Web;

// 构建表格元素
var table = new TagBuilder("table");
var row = new TagBuilder("tr");
var cell = new TagBuilder("td");
cell.InnerHtml.Append("Some text... Istanbul");

// 组装元素
row.InnerHtml.AppendHtml(cell);
table.InnerHtml.AppendHtml(row);

// 渲染成字符串
using (var sw = new StringWriter())
{
    table.WriteTo(sw, HtmlEncoder.Default);
    string html = sw.ToString();
    Console.Write(html);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:22:07