webapi 获取参数值的几种方式
[FromRoute(Name="名字")],捕捉的值会被自动赋值给Action中同名的参数;如果名字不一致,可以用[FromRoute(Name="名字")]
//前端传入
export async function workOrderWithdrawApprove() { return requestClient.post('/workOrder/withdrawApprove/'+ 10086); }
//后端接收
[HttpPost("{workorderId}")] public IActionResult WithdrawApprove([FromRoute] int workorderId) { return Ok("ok"); }
[FromQuery]来获取QueryString中的值。如果名字一致,只要为参数添加[FromQuery]即可;而如果名字不一致,[FromQuery(Name = 名字)]
//前端传递
export async function workOrderWithdrawApprove(workorderId: number) { return requestClient.post('/workOrder/withdrawApprove?workorderId='+workorderId); }
//后端接收
[HttpPost] public IActionResult WithdrawApprove([FromQuery] int workorderId) { return Ok(new { code = 0, data = true }); }
[FromForm] 从Content-Type为multipart/form-data的请求中获取数据的[FromForm]
[FromBody]:从请求正文中获取值。
//前端传入
export async function workOrderWithdrawApprove() { return requestClient.post('/workOrder/withdrawApprove',{pageIndex: 1, pageSize: 10, type: "乌鸦坐飞机"}); }
//后端接收
public class A { public int pageIndex { get; set; } public int pageSize { get; set; } public string type { get; set; } } [HttpPost] public IActionResult WithdrawApprove([FromBody] A a) { return Ok(a); }
[FromHeader]从请求报文头中获取值的[FromHeader]
下面举例:
[HttpGet("BlogByComposite/{title}")] public Blog GetBlogByBody(string name, [FromRoute(Name = "title")] string title, string contentt, [FromQuery(Name = "typeId")] int typeIdd) { return new Blog(name, title, typeIdd); }
打印结果: