J'ai besoin d'accéder à une propriété dans un attribut DataAnnotation personnalisé. Comment puis-je accéder à cet attribut pour définir la valeur de réponse? L'attribut est ajouté à la propriété de modèle.API Web - Accès aux propriétés d'attributs personnalisés dans ActionFilterAttribute OnActionExecuting
public class BirthDateAttribute : ValidationAttribute
{
public string ErrorCode { get; set; }
....
}
public class ValidateModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (!actionContext.ModelState.IsValid)
{
List<Errors> errors = new List<Errors>();
// Set error message and errorCode
foreach (var key in keys)
{
if (!actionContext.ModelState.IsValidField(key))
{
error.Add(new HttpResponseError
{
Code = ???????????,
Message = actionContext.ModelState[key].Errors.FirstOrDefault().ErrorMessage
});
}
}
// Return to client
actionContext.Response = actionContext.Request.CreateResponse(
HttpStatusCode.BadRequest, errors);
}
}
}
Il est appliqué à la propriété du modèle. – PsychoDUCK
Modifié la réponse. J'espère que cela t'aides! –