如何在 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,不用接口繁琐调用!

相关推荐
Setsuna_F_Seiei7 小时前
前端转型 Agent 开发 06 之 Agent Memory 记忆系统(让 Agent 更智能,更懂你)
前端·agent·ai编程
zhangzeyuaaa8 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
默_笙8 小时前
🌊 向量库和 ES 都查不出"关系",我只好给奶茶建了一张人脉网
前端·javascript
优选资讯9 小时前
标签打印软件怎么对接 Excel 数据
前端·excel
一个风轻云淡9 小时前
GCC 和 GDB命令简单解读
java·linux·前端
u01110267510 小时前
图片处理接口如何统一错误信息 前端提示与后端错误码设计
前端·状态模式
福兮说11 小时前
浏览器里把 iPhone 的 HEIC 转成 JPG:Chrome 解不开、转完大了七成、拍摄时间全丢,六个坑实测
前端·javascript·图像处理·chrome·ios·iphone·heic
libokaifa11 小时前
把语音模型塞进手机:sherpa-onnx 在 Android 上的 ASR / TTS
前端
deli00711 小时前
DLA 枝晶生长实测:5000 个粒子集体停摆之后,分形维数收敛到 1.70
前端
IT_陈寒11 小时前
Redis卡顿的锅,这次真不是大key的错
前端·人工智能·后端