Я новичок в основной платформе ASP.NET. Я работаю над примером приложения, где я собираю некоторые ежедневные данные из сервиса. Моя подпись API, как показано ниже -
[HttpGet("daily/{state}/{year}/{month}/{day}")]
public async Task<IActionResult> Daily([FromRoute] string state, [FromRoute] int year, [FromRoute] int month, [FromRoute] int day)
{
//...
}
Мое требование - ограничить параметр state
3 символами и всеми прописными буквами.
Итак, я сделал это -
[HttpGet("daily/{state:regex(A-Z):maxlength(3)}/{year}/{month}/{day}")]
public async Task<IActionResult> Daily([FromRoute] string state, [FromRoute] int year, [FromRoute] int month, [FromRoute] int day)
{
//...
}
Если я добавлю эти ограничения на маршрут, я получу страница не найдена ошибка.
Работает нормально, если я не накладываю ограничений.
Обновлено - см. Следующий снимок экрана с VS2017. Я передаю URL как http://localhost:51208/api/daily/mah/2018/08/13
, и все же IsValid ModelState возвращает true. Почему?