Вы должны добавить заголовок, чтобы принудительно загрузить.
header("Content-Disposition: Attachment")
header("Content-Disposition: Attachment;filename=FILENAME_HERE")
По замыслу, GET
запрос не содержит данных в теле запроса. Поэтому, когда ваш метод Submit получает запрос, он не может связать модель из тела, поскольку данные не существуют, и поэтому возвращает неверный ответ на запрос.
Поскольку ваш метод называется Submit , звучит так, как будто вы должны использовать запрос POST
. POST
Запрос, по замыслу, отправляет данные в теле запроса и подходит для отправки данных на сервер.
Попробуйте это так
[HttpPost]
public async Task<IActionResult> Submit([FromBody]SubmitModel model)
{
// this endpoint returns a 400 bad request
return Ok();
}
Я не знаю, есть ли хороший способ сделать то, что ты хочешь. Чтобы немного приблизиться, вы можете добавить этот атрибут для извлечения непосредственно из URL
[HttpGet]
public ActionResult Get([FromUri]SubmitModel model)
{
// this endpoint returns a 400 bad request
return Ok();
}
Еще одна вещь, которую вы можете сделать, если это необходимо, - создать метод расширения, отражающий модель и добавляющий все свойства / значения в строке запроса. Вот несколько хороших примеров . Как сериализовать объект в формат строки запроса?