Я использую .net Core 2.1 Web API. Я добавляю каждый метод [HttpGet("....")]
или [HttpPost("....")]
, как показано ниже. Но я не хочу писать каждый метод в каждом контроллере. Я хочу написать только [HttpGet]
или [HttpPost]
. Как мне этого добиться?
Или, если это невозможно, могу ли я сделать это как [HttpPost("[action]")]
с автоматическим выполнением actionName?
Я звоню так:
http://localhost:5000/api/University/GetUniversities
Это прекрасно работает
namespace University.API.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UniversityController : ControllerBase
{
private readonly IUniversityService universityService;
public UniversityController(IUniversityService universityService)
{
this.universityService = universityService;
}
[HttpGet("GetUniversities")]
public async Task<ServiceResult> GetUniversities()
{
return await universityService.GetUniversities();
}
[HttpGet("GetUniversityStatues")]
public async Task<ServiceResult> GetUniversityStatues()
{
return await universityService.GetUniversityStatues();
}
}
}
Я пробовал это, но не работает:
namespace University.API.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UniversityController : ControllerBase
{
private readonly IUniversityService universityService;
public UniversityController(IUniversityService universityService)
{
this.universityService = universityService;
}
[HttpGet]
public async Task<ServiceResult> GetUniversities()
{
return await universityService.GetUniversities();
}
[HttpGet]
public async Task<ServiceResult> GetUniversityStatues()
{
return await universityService.GetUniversityStatues();
}
}
}