基于自定义本地化错误消息asp core 3.1创建自定义jquery验证规则
Posted
技术标签:
【中文标题】基于自定义本地化错误消息asp core 3.1创建自定义jquery验证规则【英文标题】:Create custom jquery validation rule based on custom localized error message asp core 3.1 【发布时间】:2021-03-02 16:17:08 【问题描述】:注意事项:
-
我正在使用共享资源来本地化错误消息,它适用于所有 .net 注释属性
我在启动类中注入了dataannotation服务来接受共享资源本地化
这是我的审核代码
public string PageName get; set; //For custom validation purposes
[Display(Name = "Name")]
[RequiredIf("PageName", "Contacts", ErrorMessage = "This field is required")]
public string PageName get; set;
public class RequiredIfAttribute : ValidationAttribute, IClientModelValidator
private String PropertyName get; set;
private Object DesiredValue get; set;
private readonly RequiredAttribute _innerAttribute;
public RequiredIfAttribute(String propertyName, Object desiredvalue)
PropertyName = propertyName;
DesiredValue = desiredvalue;
_innerAttribute = new RequiredAttribute();
protected override ValidationResult IsValid(object value, ValidationContext context)
var dependentValue = context.ObjectInstance.GetType().GetProperty(PropertyName).GetValue(context.ObjectInstance, null);
if (dependentValue != null && dependentValue.ToString() == DesiredValue.ToString())
//if (dependentValue == null || dependentValue.ToString() != DesiredValue.ToString())
if (!_innerAttribute.IsValid(value))
// if validation result is wrong
return new ValidationResult(ErrorMessage);
// if validation result is correct
return ValidationResult.Success;
public void AddValidation(ClientModelValidationContext context)
if (context == null)
throw new ArgumentNullException("context");
context.Attributes.Add("data-val", "true");
context.Attributes.Add("data-val-requiredIf", ErrorMessage); //Here i need to get the localized message
context.Attributes.Add("data-seed-property", PropertyName);
context.Attributes.Add("data-desired-value", DesiredValue.ToString());
【问题讨论】:
请您点击“接受答案”。 【参考方案1】:这是一个演示。根据这个模型在Index.cshtml中创建一个表单。
<form id="loginForm" method="post">
<div>
<label>PageName</label>
<input asp-for="@Model.PageName" />
</div>
<div>
<input type="submit" name="login" id="submit" value="save">
</div>
参考 jquery.validate.min.js 并设置规则。
@section Scripts
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script>
$(function ()
$("#loginForm").validate(
rules:
PageName://Locate the name value of the element attribute
required: true,
minlength: 2,
maxlength: 10
,
messages:
//Define rule prompt message
PageName:
required: "Le nom d'utilisateur ne peut pas être vide",
minlength: "Pas moins de 2",
maxlength: "Pas plus de 10 chiffres"
);
);
</script>
此属性message
定义错误消息。
【讨论】:
以上是关于基于自定义本地化错误消息asp core 3.1创建自定义jquery验证规则的主要内容,如果未能解决你的问题,请参考以下文章
基于 ASP.NET Core 2.1 的 Razor Class Library 实现自定义错误页面的公用类库
ASP.NET Core WebApi HttpResponseMessage 创建自定义消息?
如何在 asp.net core 2.1 中使用自定义消息设置状态代码?
Wcf 服务在 .NET Core 3.1 控制台应用程序中工作,但在 ASP.NET Core 3.1 Web API 中无法工作