当我args=null
具有身体POST
时,以下内容给了我{"args": 222}
。如何将主体成员放入变量args
(或将整个主体放入变量body
)
[HttpPost("{className}/{methodName}")]
public ActionResult<string> Post(string className, string methodName, string args){}
答案 0 :(得分:3)
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);
}
答案 1 :(得分:0)
如果要使用属性路由,则必须在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