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

相关推荐
W.A委员会5 分钟前
地址栏输入url到显示画面
前端·网络
xuankuxiaoyao8 分钟前
Vue.js实践-组件基础上
前端·javascript·vue.js
甄心爱学习9 分钟前
【项目实训】法律文书智能摘要系统3
前端·人工智能
冲浪中台12 分钟前
从追逐技术到回归业务本质,吃互联网红利罢了
服务器·前端·人工智能·低代码
小马_xiaoen17 分钟前
前端虚拟列表(Virtual List)从原理到实战:海量数据渲染终极方案
前端·数据结构·list
M ? A38 分钟前
你的 Vue 3 响应式状态,VuReact 如何生成 React Hooks 依赖数组?
前端·javascript·vue.js·经验分享·react.js·面试·vureact
FlyWIHTSKY43 分钟前
HTML 中 `<span>` 和 `<div>` 详细对比
前端·html
competes1 小时前
React.js JavaScript前端技术脚本运行框架。程序员进行研发组项目现场工作落地的一瞬之间适应性恒强说明可塑性强度达到应用架构师的考核标准
前端·javascript·人工智能·react.js·java-ee·ecmascript
2401_832635581 小时前
踩坑分享IntelliJ IDEA 打包 Web 项目 WAR 包(含 Tomcat 部署 + 常见问题解决)
前端·tomcat·intellij-idea
Evavava啊1 小时前
Android WebView 中 React useState 更新失效问题
android·前端·react.js·渲染