У меня такой контроллер:
[Route("blog")]
[Route("{locale:regex(^(de|es|fr)$)}/blog", Order = -1)]
public class BlogController : Controller {
[HttpGet("{id:int}.htm")]
[HttpGet("{slug}/{id:int}.htm")]
public IActionResult Details(string? slug, int id) {
return View();
}
}
Теперь, если я попытаюсь сгенерировать следующие URL-адреса:
- @ Url.Action ("Подробности", "Блог", новый {id = 1})
- @ Url.Action ("Подробности", "Блог", новый {slug = "cat-1", id = 1})
- @ Url.Action ("Подробности", "Блог", новый {id = 1, locale = "fr"})
- @ Url.Action ("Подробности", "Блог", новый {slug = "cat-1", id = 1, locale = "fr"})
Я ожидал следующего:
- /blog/1.htm
- /blog/cat-1/1.htm
- /fr/blog/1.htm
- /fr/blog/cat-1/1.htm
Однако это возвращается:
- /blog/1.htm
- /blog/1.htm?slug=cat-1
- /fr/blog/1.htm
- /fr/blog/1.htm?slug=cat-1
Я попытался изменить порядок всех атрибутов маршрутизации, но не могу заставить его вернуть желаемый результат, и буду признателен за любую помощь.