Я новичок в Asp. net и испытываю некоторые трудности с маршрутизацией. Не уверен, что это ошибка или проблема с моим базовым c пониманием того, как настроить REST и параметры запроса.
Я пытаюсь обработать два разных запроса с одним и тем же маршрутом (это действительно один и тот же запрос) с необязательным параметром)
/api/test
/api/test?cats=1&cats=5
контроллер:
public class TestController : ControllerBase
{
[HttpGet]
public IEnumerable<string> Get(int[] cats)
{
...
}
}
В запуске:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
В приведенном фрагменте контроллера есть параметр cat. Если я оставляю его в маршрутизации, происходит сбой с «Unsupported Media Type», «status»: 415 .. (https://localhost: 5001 / api / Test )
Я также попытался изменить От HttpGet до HttpGet ("{cats}")
Я также попытался изменить объявление метода
public IEnumerable<string> Get([FromQuery(Name = "vats")]int[] vats)
Нужна ли пользовательская маршрутизация?