NuGet 中的 WebForms Core

发布: (2026年1月5日 GMT+8 02:22)
3 min read
原文: Dev.to

Source: Dev.to

概览

WebForms Core 是由 Elanat 开发的服务器驱动 UI 技术,现已正式在 NuGet 上以包名 WFC 提供。该包让 .NET 开发者能够使用标准 .NET 工具,将 WebForms Core 集成到 ASP.NET Core 项目中——包括 Razor Pages 和 MVC。

安装

使用一条命令安装 WebForms Core:

dotnet add package WFC

或在 .csproj 文件中直接添加包引用:

<!-- Add the package reference here -->

添加 WebFormsJS 运行时

要完成设置,需要在 HTML 页面 的 “ 部分中加入 WebFormsJS 运行时。你可以从以下渠道获取 WebFormsJS:

  • Elanat:
  • GitHub:

示例:使用 WebForms Core 删除 DOM 元素

HTML

    This element will be removed

Remove
@Html.Raw(ViewData["WebForms"] ?? "")

服务器端 (C# – WebForms Core)

using WebFormsCore;
...
public IActionResult OnGet()
{
    var form = new WebForms();

    if (Request.Query.ContainsKey("remove_box"))
    {
        form.Remove("box");
        return Content(form.Response(), "text/html");
    }

    // Bind click event
    form.SetGetEvent("removeBtn", "onclick", "?remove_box");

    // Export commands
    ViewData["WebForms"] = form.ExportToHtmlComment();

    return Page();
}

这里发生了什么?

  • 当按钮被点击时,会向服务器发送请求。
  • 服务器返回一个 Remove 命令。
  • WebFormsJS 在浏览器中立即执行该命令。
  • 无需页面刷新、DOM 差分,也不需要自定义 JavaScript。

哲学

WebForms Core 采用 确定性 UI 运行时 + 协议 + DSL 的方式。它是:

  • 不仅仅是一个框架。
  • 不仅仅是服务器驱动的 UI。
  • 也不是经典 WebForms 的复兴。

相反,它定义了:

  • 一个通信协议。
  • 一个 UI 执行模型。
  • 一个客户端运行时。
  • 一个面向命令的语言。

目前没有其他 web 系统能够将这些关注点全部整合到一个统一、连贯的模型中。

进一步阅读

在文章中可以找到一个实用的 Razor Pages 示例:
State Management in WebForms Core 2 (Razor Pages Example)

WebForms Core 在 NuGet 上的可用性标志着在 .NET 生态系统中更广泛采用的重要一步。无论你是在构建新应用、现代化旧系统,还是在探索超越 Blazor 的服务器驱动 UI 架构,WFC 都提供了一种强大、极简且根本不同的方式,值得一试。

Back to Blog

相关文章

阅读更多 »

在 C# 中将 RTF 转换为 PDF

概述 RTF(Rich Text Format)是一种跨平台的格式,广泛用于文档编辑和数据交换。相比之下,PDF 则是文档分发的理想选择……