В настоящее время я работаю над веб-API, используя Microsoft MVC Framework.Внутри их документов я прочел следующее (https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.1):
. Для удобства маршруты атрибутов поддерживают замену токенов, заключая токен в квадратные скобки ([,]). Токены [action], [area] и [controller] будут заменены значениями имени действия, имени области и имени контроллера из действия, в котором определен маршрут. В этом примере действия могут соответствовать путям URL, как описано в комментариях:
[Route("[controller]/[action]")]
public class ProductsController : Controller
{
[HttpGet] // Matches '/Products/List'
public IActionResult List() {
// ...
}
[HttpGet("{id}")] // Matches '/Products/Edit/{id}'
public IActionResult Edit(int id) {
// ...
}
}
Замена токена происходит в качестве последнего шага построения маршрутов атрибута. Приведенный выше пример будет вести себя так же, как следующий код:
public class ProductsController : Controller
{
[HttpGet("[controller]/[action]")] // Matches '/Products/List'
public IActionResult List() {
// ...
}
[HttpGet("[controller]/[action]/{id}")] // Matches '/Products/Edit/{id}'
public IActionResult Edit(int id) {
// ...
}
}
Однако всякий раз, когда я пытаюсь использовать [HttpGet("my/route")]
attribute, visual studio постоянно говорит мне: «HttpGetAttribute не содержит конструктор, который принимает 1 аргумент». Я уже читал, что должен установить Microsoft.AspNet.WebApi.WebHost
с помощью менеджера пакетов, но ошибка все еще там.
MyВопрос в том, как я могу начать использовать правильный атрибут? У меня нет опыта установки пакетов в Visual Studio.
Спасибо заранее за любую помощь.