Asp.net core 如何为所有必需的属性验证设置相同的错误消息?
我不熟悉.NETCore。 以下代码将asp.net framework所有必需的验证消息更改为“此字段是必需的”Asp.net core 如何为所有必需的属性验证设置相同的错误消息?,asp.net-core,Asp.net Core,我不熟悉.NETCore。 以下代码将asp.net framework所有必需的验证消息更改为“此字段是必需的” public class CustomRequiredAttribute:RequiredAttribute, IClientValidatable { public override bool IsValid(object value) { return base.IsValid(value);
public class CustomRequiredAttribute:RequiredAttribute, IClientValidatable
{
public override bool IsValid(object value)
{
return base.IsValid(value);
}
public override string FormatErrorMessage(string name)
{
return base.FormatErrorMessage(name); // expandable to format given message later
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
return new[] { new ModelClientValidationRule { ErrorMessage = "This field is required", ValidationType = "required" } };
}
}
对于您的需求,您可以实现
RequiredAttribute、IClientModelValidator
等
public class DefaultRequiredAttribute: RequiredAttribute, IClientModelValidator
{
public DefaultRequiredAttribute()
{
ErrorMessage = "This field is required";
}
public void AddValidation(ClientModelValidationContext context)
{
MergeAttribute(context.Attributes, "data-val", "true");
MergeAttribute(context.Attributes, "data-val-required", ErrorMessage);
}
private bool MergeAttribute(IDictionary<string, string> attributes, string key, string value)
{
if (attributes.ContainsKey(key))
{
return false;
}
attributes.Add(key, value);
return true;
}
}
真棒的朋友。还有一个问题,如何为RequiredIf编写相同的查询attribute@AnujTamrakar您所说的
要求是什么意思如果,对于新版本,请打开一个新线程。@Edward IClientModelValidator的库/引用名称是什么?
public class DefaultRequiredAttribute: RequiredAttribute, IClientModelValidator
{
public DefaultRequiredAttribute()
{
ErrorMessage = "This field is required";
}
public void AddValidation(ClientModelValidationContext context)
{
MergeAttribute(context.Attributes, "data-val", "true");
MergeAttribute(context.Attributes, "data-val-required", ErrorMessage);
}
private bool MergeAttribute(IDictionary<string, string> attributes, string key, string value)
{
if (attributes.ContainsKey(key))
{
return false;
}
attributes.Add(key, value);
return true;
}
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
[DefaultRequired]
public string UserImage { get; set; }
}