Вместо этого вы можете использовать маршрут вроде:
[Route("{day:regex(^[[0-2]][[0-9]]|3[[0-1]]$)}-{month:regex(^0[[0-9]]|1[[0-2]]$)}-{year:regex(^\\d{{4}}$)}")]
И затем изменить свое действие на что-то вроде:
public IActionResult Foo(int day, int month, int year)
{
var givenDate = new DateTime(year, month, day);
...
}
По общему признанию, это отстой, но он действительно получаетРабота выполнена.Ограничения регулярных выражений, хотя они и ужасны, гарантируют, что в конечном итоге любые проходящие значения будут работать для создания объекта DateTime
с.