[Edit: les extraits de code d'origine ne sont pas correctes.]C# aide pour trouver mon message d'erreur de validation personnalisée de la propriété décorée avec RequiredAttribute
[Ce poste est onformément pour aider à répondre à la question précise que j'avais que j'ai trouvé un Réponds à. Je suis en train de lier mon exemple de post que j'ai suivi et ensuite le post qui m'a donné la réponse. Ensuite, je poste le code que j'ai utilisé avec succès pour produire les résultats que j'ai atteints.]
J'ai implémenté une technique simple de validation dans mon entrée dans un ApiController. Le code suivant était fonctionnel, mais comme vous pouvez le voir il a seulement fourni un message d'erreur générique.
La réponse que je trouve pour me guider à cette technique se trouve ici: https://stackoverflow.com/a/19322688/7637275
Voici mon code que j'ai commencé avec -
using System.Web.Http;
using System.Web.Routing;
using System.Web.Http.Controllers;
using System.Web;
using System.Web.Http.Filters;
namespace TestValidation
{
internal class ValidateModelStateFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (!actionContext.ModelState.IsValid)
{
throw new HttpException(422, "Validation failed on input");
}
}
}
}
L'extrait suivant montre l'erreur de validation que je devais voir, au lieu du message générique noté ci-dessus.
[Required(ErrorMessage = @"Parameter ""ID"" is required.")]
[MaxLength(18, ErrorMessage = @"Exceeded max length (18 characters) for parameter ""ID""")]
public string ID { get; set; }
A ce moment, dans mon remplacement, je dois creuser dans l'objet HttpActionContent « ActionContext » pour trouver les messages d'erreur personnalisés.