#c# #asp.net-core
#c# #asp.net-core
Вопрос:
Есть ли способ CreatedAtAction
добавить параметр запроса к Location
заголовку, который генерируется?
Используемый мной метод action объявлен как таковой:
[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
абсолютно необходимо для работы этого метода action, и именно поэтому я хотел бы включить его в URL, возвращаемый в Location
заголовке: я хотел бы, чтобы мой URL был рабочим.
Ответ №1:
Вы можете добавить siteId
свойство к создаваемому вами анонимному объекту — все, что не указано в самом маршруте, автоматически устанавливается в качестве параметра строки запроса:
return CreatedAtAction(
nameof(Get),
new { candidateId = model.CandidateId, siteId = model.SiteId },
model));