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

相关推荐
软件聚导航44 分钟前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
恋猫de小郭1 小时前
看懂大模型架构术语,帮助你理解目前常见的大模型开源架构
前端·人工智能·ai编程
yma161 小时前
通过提示词实现GitHub Pages 和 Nginx 双部署竟然这么简单?
前端
前端 贾公子2 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
可乐鸡翅yeah_2 小时前
第三方接口对接 M3U8 流媒体排坑实战,解决外部服务商流兼容难题
前端·javascript·python·django·html·m3u8·m3u8在线
GoppViper2 小时前
RDF资源描述框架深度解析:语义Web的数据基石与实战逻辑
前端·数据库
郑州光合科技余经理2 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
IT_陈寒2 小时前
Vue的嵌套组件竟然吃掉了我的事件?
前端·人工智能·后端
默_笙2 小时前
🏠 「LLM Notes」:我用 Next.js + Redis 给自己造了个笔记博客
前端·javascript
风骏时光牛马2 小时前
AI开发平台异常指标实时监控告警
前端