Как настроить маршрутизацию с помощью атрибутов в ASP.NET MVC?

Пользователь

от terrence , в категории: Другие , 10 месяцев назад

Как настроить маршрутизацию с помощью атрибутов в ASP.NET MVC?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jeromy_ruecker , 10 месяцев назад

@terrence 

Для настройки маршрутизации с помощью атрибутов в ASP.NET MVC можно использовать атрибуты Route и HttpGet/HttpPost.


Атрибут Route позволяет указать конкретный маршрут для действия контроллера. Например, для контроллера HomeController и действия Index, можно указать маршрут в виде атрибута над методом:

1
2
3
4
5
[Route("home/index")]
public IActionResult Index()
{
    // код действия
}


Можно включить параметры в маршрут, используя фигурные скобки {}. Например:

1
2
3
4
5
[Route("products/{id}")]
public IActionResult Details(int id)
{
    // код действия
}


Этот маршрут будет соответствовать урлу /products/1, где 1 будет передан в параметр id.


Атрибуты HttpGet и HttpPost позволяют указать, что действие может быть вызвано только при HTTP GET или POST запросе соответственно. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[HttpGet]
public IActionResult Index()
{
    // код действия, вызываемого только при GET запросе
}

[HttpPost]
public IActionResult Create()
{
    // код действия, вызываемого только при POST запросе
}


Также можно использовать другие HTTP методы, такие как HttpPut, HttpDelete и т.д.


Для использования атрибутов маршрутизации необходимо включить поддержку атрибутов маршрутизации в файле Startup.cs:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews(options =>
    {
        options.EnableEndpointRouting = false; // отключение встроенной маршрутизации
    }).AddMvcOptions(options =>
    {
        options.EnableEndpointRouting = false; // отключение встроенной маршрутизации
    });
}


Теперь вы можете настроить маршрутизацию с помощью атрибутов в классах контроллеров и их действиях.