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

相关推荐
-SOLO-2 小时前
使用Cursor操控正在打开的Chrome
前端·chrome
jacklood3 小时前
使用STM32的迪文屏控制使用参考方式
前端·javascript·stm32
KevinCyao3 小时前
Go短信营销接口示例代码:Golang高并发调用营销短信接口的实现方案与代码分享
android·前端·网络·golang·前端框架
Moyo2033 小时前
前端 -- react快速入门
前端·react.js·前端框架
whuhewei3 小时前
在React中实现CSS动画的回放
前端·css·react.js
北海军3 小时前
render el-select下拉框
前端·javascript·vue.js
We་ct3 小时前
LeetCode 4. 寻找两个正序数组的中位数:二分优化思路详解
前端·数据结构·算法·leetcode·typescript·二分
H@Z*rTE|i4 小时前
vue首屏加载优化
前端·javascript·vue.js
FreeBuf_4 小时前
新型开源供应链攻击:虚假 npm 安装日志暗藏 RAT 木马
前端·npm·开源