如何在 Blazor Web 前端中使用 C# 进行数据交互?

我用最简单、最实用、你直接能复制的方式教会你:

Blazor Web 前端 如何用 C# 做数据交互(调用 API / 读数据库 / 传参)

我不讲废话,直接给你 3 种最常用的用法,你照着抄就能用!


一、Blazor 前端调用你的 .NET 8 API(最常用 ✅)

1. 先在 Program.cs 注入 HttpClient

csharp

运行

复制代码
builder.Services.AddScoped(sp => new HttpClient 
{ 
    BaseAddress = new Uri("http://192.168.1.100:8081/") 
});

2. 在页面用 C# 调用 API(直接复制)

razor

复制代码
@page "/"
@inject HttpClient Http  <!-- 注入 -->

<h3>用户列表</h3>

@if (users == null)
{
    <p>加载中...</p>
}
else
{
    @foreach (var user in users)
    {
        <div>@user.Name</div>
    }
}

@code {
    List<UserDto> users;

    // 页面加载时执行 C# 方法
    protected override async Task OnInitializedAsync()
    {
        // 🔥 C# 调用 API,完全不用 JS!
        users = await Http.GetFromJsonAsync<List<UserDto>>("api/user/getlist");
    }

    // 模型类
    public class UserDto
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

全部是 C#没有一行 JavaScript和你写后端逻辑一模一样


二、点击按钮用 C# 提交数据(新增 / 修改)

razor

复制代码
<input @bind="model.Name" />
<button @onclick="Submit">提交</button>

@code {
    UserDto model = new();

    async Task Submit()
    {
        // C# 发送 POST 请求
        await Http.PostAsJsonAsync("api/user/add", model);

        // 提示
        Console.WriteLine("添加成功!");
    }
}

三、直接在 Blazor 里读数据库(不通过 API)

如果你想Blazor 直接读 SQL,不用写 API:

1. 注入 DB 上下文

csharp

运行

复制代码
builder.Services.AddDbContext<AppDbContext>(options => 
    options.UseSqlServer("你的连接字符串"));

2. 页面直接查询

razor

复制代码
@inject AppDbContext db

@code {
    List<User> users;

    protected override async Task OnInitializedAsync()
    {
        // 直接 C# 查数据库
        users = await db.Users.ToListAsync();
    }
}

🎯 核心总结(你一定要记住)

Blazor 前端交互 = C#

  • 读数据:GetFromJsonAsync
  • 提交:PostAsJsonAsync
  • 加载:OnInitializedAsync
  • 点击:@onclick

全部是 C#,不用 JS,不用 Vue,不用接口繁琐调用!

相关推荐
Pedantic29 分钟前
SwiftUI 手势层级(Gesture Hierarchy)详解
前端
飘尘1 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
一颗烂土豆1 小时前
Meshopt 压缩深度解析,为什么它比 Draco 更快
前端·javascript·webgl
浏览器工程师2 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
雨季mo浅忆2 小时前
VSCode自动格式化三要素
前端
爱勇宝3 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员
kyriewen3 小时前
同事每天催我 Code Review,我写了个脚本让 AI 替我 review PR——现在他反过来催 AI 了
前端·javascript·ai编程
user20585561518136 小时前
Windows 项目安装时报 `node-sass` 错误,如何快速处理
前端
LiaCode6 小时前
Redis 在生产项目的使用
前端·后端