c# - C# .NET 中 POST 的属性路由

标签 c# asp.net-core attributerouting asp.net-core-routing

当我使用主体 {"args": 222}POST 时,以下内容会给我 args=null。我怎样才能让 body 的成员进入我的变量args(或整个 body 进入变量body)

[HttpPost("{className}/{methodName}")]
public ActionResult<string> Post(string className, string methodName, string args){}

最佳答案

JSON

{"args": 222}

暗示 args 是一个数字。

创建一个模型来保存预期的数据

public class Data {
    public int args { get; set; }
}

更新操作以明确期望来自请求正文的数据

[HttpPost("{className}/{methodName}")]
public ActionResult<string> Post(string className, string methodName, [FromBody] Data body) {
    if(ModelState.IsValid) {
        int args = body.args
        //...
    }
    return BadRequest(ModelState);
}

关于c# - C# .NET 中 POST 的属性路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52177911/

相关文章:

c# - 正确取消异步操作并再次触发

c# - 如何在 asp.net 中按顺序从目录中获取文件?

azure - 在可扩展的 Azure 应用服务中使用 Asp.Net Core 数据保护

asp.net-core - asp-route-id 不传递参数值

c# - 使用 MVC 5 RouteArea 属性时找不到默认区域 View

c# - WSHttpBinding TransportWithMessageCredential SecurityMode 改变请求

c# - 在家里和办公室共享 C# 项目的文件

asp.net-core - 让我们使用 ASP.Net Core 和 Azure 应用服务进行加密

c# - 在 ASP .net WEB API 中使用属性路由进行版本控制

asp.net-mvc - 多个 DateTime 参数的属性路由