C# .NET 中 POST 的属性路由

Attribute routing for POST in C# .NET

下面给我args=null当我POST用body{"args": 222}。如何将 body 的成员放入我的变量 args(或将整个 body 放入变量 body

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

如果您想使用属性路由,您必须在 WebAPIConfig 中启用属性路由。每个动作 PUT、GET、POST 等也有一个 [Route()]

我看你做的是常规路由

有关属性路由的更多信息,我建议您阅读此 https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2

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);
}