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