У меня есть действие WebAPI, в котором я ожидаю, что аргумент будет предоставлен для соответствия определенному регулярному выражению (или другому атрибуту проверки, например [Range(1, 20)]
). Предоставляемый параметр также является частью URL-адреса.Проверка параметров для действия WebAPI
[Route("api/stuff/{id}")]
public HttpResponseMessage Get([RegularExpression(@"^\d+-[a-z]{3}$")] id) {
if (!ModelState.IsValid) {
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
//do stuff
}
К сожалению, состояние модели всегда действительное, даже если значение не соответствует регулярному выражению.
Как бы я проверил этот URL-сегмент?
Можете ли вы использовать ограничения маршрута для ограничения параметра http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2 – softveda