如何获取CreatedAtAction添加查询参数?

时间:2019-03-25 11:22:15

标签: c# asp.net-core

是否可以将CreatedAtAction附加查询参数到生成的Location标头中?

我正在使用的操作方法声明为:

[HttpGet("{candidateId:guid}")]
public async Task<ActionResult> Get(Guid candidateId, [FromQuery][Required]string siteId)

并且在调用CreatedAtAction时指向它:

var model = RegisterModel(/* ... */);

return CreatedAtAction(nameof(Get), new { candidateId = model.CandidateId }, model));

siteId是此操作方法正常工作所必需的,这就是为什么我想将其包含在Location标头中返回的URL中:我希望我的URL是一个有效的方法

1 个答案:

答案 0 :(得分:3)

您可以向正在创建的匿名对象添加siteId属性-路由本身中未指定的任何内容都会自动设置为查询字符串参数:

return CreatedAtAction(
    nameof(Get),
    new { candidateId = model.CandidateId, siteId = model.SiteId },
    model));