Mantén la atención ya que en esta reseña vas a hallar la contestación que buscas.Este enunciado ha sido evaluado por nuestros expertos para garantizar la calidad y veracidad de nuestro post.
Solución:
¿Intentaste usar DisplayName
attribute?
nombre para mostrar attribute vs pantalla attribute
Además, puede asignar un mensaje de error a [Required]
attribute.
[Required(ErrorMessage = "Name is required")]
También enfrenté este problema, modifiqué un código de su enlace para que se ajuste a mi WebAPI. modelState
también almacenará el viejo key que es el nombre de la variable del modelo, más los nombres de las propiedades Json.
- Primero, crea el filtro.
ValidateModelStateFilter
- Agregar
[ValidateModelStateFilter]
método del controlador anterior
El código fuente del filtro:
public class ValidateModelStateFilter : ActionFilterAttribute
public override void OnActionExecuting(HttpActionContext actionContext)
var descriptor = actionContext.ActionDescriptor;
var modelState = actionContext.ModelState;
if (descriptor != null)
var parameters = descriptor.GetParameters();
var subParameterIssues = modelState.Keys
.Where(s => s.Contains("."))
.Where(s => modelState[s].Errors.Any())
.GroupBy(s => s.Substring(0, s.IndexOf('.')))
.ToDictionary(g => g.Key, g => g.ToArray());
foreach (var parameter in parameters)
var argument = actionContext.ActionArguments[parameter.ParameterName];
if (subParameterIssues.ContainsKey(parameter.ParameterName))
var subProperties = subParameterIssues[parameter.ParameterName];
foreach (var subProperty in subProperties)
var propName = subProperty.Substring(subProperty.IndexOf('.') + 1);
var property = parameter.ParameterType.GetProperty(propName);
var validationAttributes = property.GetCustomAttributes(typeof(ValidationAttribute), true);
var value = property.GetValue(argument);
modelState[subProperty].Errors.Clear();
foreach (var validationAttribute in validationAttributes)
var attr = (ValidationAttribute)validationAttribute;
if (!attr.IsValid(value))
var parameterName = GetParameterName(property);
// modelState.AddModelError(subProperty, attr.FormatErrorMessage(parameterName));
modelState.AddModelError(parameterName, attr.FormatErrorMessage(parameterName));
private string GetParameterName(PropertyInfo property)
var dataMemberAttribute = property.GetCustomAttributes().FirstOrDefault();
if (dataMemberAttribute?.Name != null)
return dataMemberAttribute.Name;
var jsonProperty = property.GetCustomAttributes().FirstOrDefault();
if (jsonProperty?.PropertyName != null)
return jsonProperty.PropertyName;
return property.Name;
Aquí tienes las reseñas y calificaciones
Si sostienes alguna incertidumbre y capacidad de ascender nuestro ensayo eres capaz de realizar un paráfrasis y con mucho placer lo estudiaremos.