wiem, że można użyć atrybutów Validation na modelu, aby potwierdzić to tak:Web API walidacji parametr pojedynczy łańcuch za pomocą walidacji
public class CommunicationQuery
{
[RegularExpression("[0-9]{0,10}", ErrorMessage = "Please enter a valid policy number")]
public string PolicyId { get; set; }
[RegularExpression("[0-9]{0,10}", ErrorMessage = "Please enter a valid member number")]
public string MemberId { get; set; }
}
public IEnumerable<Communication> Get([FromUri]CommunicationQuery documentQuery)
{
}
Ale czy to możliwe, aby potwierdzić jeden ciąg znaków za pomocą atrybutów walidacji takie jak to?
public async Task<HttpResponseMessage> Get([RegularExpression("[0-9]{0,10}")]string id)
{
}
To nie działa. Jedynym sposobem, w jaki mogłem to zrobić, było utworzenie obiektu opakowania i użycie [FromUri]
, użycie niestandardowego ActionFilterAttribute
na samej akcji lub ręczne sprawdzenie poprawności parametru w akcji kontrolera za pomocą wyrażenia regularnego.
API sieci wiązań tras również użyteczne do walidacji jak [Sposób ("XYZ/{id int: MaxLength (10)}")] – 111