我有一个像
public class Employee
{
[Required]
[RegularExpression]
public string Name { get; set; }
}
当我在文本框中键入空格时,所需的字段验证不会触发(尽管我保留了验证的AllowEmptyString
属性Required
)。
我已经编写了一个自定义验证,并计划重写IsValid()
如下:
[AttributeUsage(AttributeTargets.Property)]
public class CustomRequiredValidatiorAttribute : ValidationAttribute, IClientValidatable
{
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metaData, ControllerContext context)
{
if (metaData == null)
{
throw new ArgumentNullException(nameof(metaData));
}
var rule = new ModelClientValidationRule
{
ErrorMessage = "Error msg",
};
rule.ValidationType = "required";
rule.ValidationParameters["propertynames"] = metaData.PropertyName;
yield return rule;
}
public override bool IsValid(object value)
{
// some logic
}
}
和模型看起来像
public class Employee
{
[CustomRequiredValidatiorAttribute]
[RegularExpression]
public string Name { get; set; }
}
在我的代码中,此验证应在没有页面刷新/回发的情况下触发
但是IsValid()
没有被打电话,有人可以帮我解决这个问题吗?
由于我没有将页面发布到服务器,因此IsValid()不会触发
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句