惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
J
Java Code Geeks
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
美团技术团队
L
LangChain Blog
WordPress大学
WordPress大学
A
About on SuperTechFans
Martin Fowler
Martin Fowler
月光博客
月光博客
Y
Y Combinator Blog
U
Unit 42
D
Docker
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
B
Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
G
Google Developers Blog
Last Week in AI
Last Week in AI
T
The Blog of Author Tim Ferriss
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - 云飞扬IT

在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求(官方文档) C# IConfiguration 注入 理解(AI) C# webapi 参数(AI) Error:(246, 5) error: resource android:attr/ttcIndex not found Android Gradle 插件版本与Gradle版本对应 flutter 水平Row示例 flutter Padding的用法 flutter解析json参考 java 三个类名 abstract extends implements flutter Vs code 快速创建2个状态的快捷代码 flutter分号还是逗号 flutter在线站点 windows 10 安装 sql 2005 安装失败 开发和常用工具推荐清单 ---转 ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码) ---转 【商业源码】生日大放送-Newlife商业源码分享 -转 我个人所有的独立博客wordpress都被挂马 .NET Web开发技术简单整理 转 程序员常用不常见很难得的地址大全转
asp.net mvc 传参问题
云飞扬IT · 2026-02-04 · via 博客园 - 云飞扬IT
 

代码示例:验证两种写法的差异
情况 1:直接用 int Id(无法获取 Body 中的 Id)
csharp
运行

// 前端POST JSON:{"Id": 123} → 这里Id无法绑定,值为0(int默认值)
[HttpPost("info")]
public IResult Info(int Id) 
{
    // Id = 0(未绑定到值)
    return Results.Ok($"Id: {Id}");
}

情况 2:显式指定从 Body 绑定 int Id(可以获取)
如果想直接用int Id并获取 Body 中的值,需要手动加[FromBody]特性(注意:一个 Action 只能有一个[FromBody]参数):
csharp
运行

// 前端POST JSON:{"Id": 123} → 能正常绑定Id=123
[HttpPost("info")]
public IResult Info([FromBody] int Id) 
{
    return Results.Ok($"Id: {Id}");
}

情况 3:用复杂类型(默认从 Body 绑定,推荐)
这是你现在使用的方式,也是行业最佳实践(尤其参数多的时候):
csharp
运行

// 前端POST JSON:{"Id": 123} → 能正常绑定
[HttpPost("info")]
public IResult Info(ApiBookInfoRequest request) 
{
    // request.Id = 123
    return Results.Ok($"Id: {request.Id}");
}

public class ApiBookInfoRequest
{
    public int Id { get; set; }
}

情况 4:Id 放在路由 / 查询字符串(简单类型也能获取)
如果Id是通过路由或查询字符串传递,直接用int Id也能正常获取:
csharp
运行

// 路由传递:POST /info/123 → Id=123
[HttpPost("info/{Id}")]
public IResult Info(int Id) 
{
    return Results.Ok($"Id: {Id}");
}

// 查询字符串传递:POST /info?Id=123 → Id=123
[HttpPost("info")]
public IResult Info(int Id) 
{
    return Results.Ok($"Id: {Id}");
}