У меня очень основы c Asp. Net Core Api; мой контроллер выглядит следующим образом:
[ApiController]
[Route("[controller]")]
public class TestController : ControllerBase
{
[HttpGet("{id}")]
public IEnumerable<Resource> Test(string id)
{
// Breakpoint here
}
Я ожидал бы, что следующий URL вызовет метод и сработает точка останова:
https://localhost:5012/test/test/1
Однако это не так. Фактически, следующий URL делает:
https://localhost:5012/test/1
У меня сложилось впечатление, что формат для URL был следующим (из автозагрузки):
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}");
});
Так, если только это действие это Index
:
https://localhost:5012/controller/action/id
Но похоже, что принятый формат:
https://localhost:5012/controller/id
Мой вопрос: почему это так?