@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; // отключение встроенной маршрутизации }); } |
Теперь вы можете настроить маршрутизацию с помощью атрибутов в классах контроллеров и их действиях.