C# IsValid方法在MVC中的自定义必需验证属性中不起作用,并且我没有使用ModelState.IsValid
我有一个这样的模特C# IsValid方法在MVC中的自定义必需验证属性中不起作用,并且我没有使用ModelState.IsValid,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我有一个这样的模特 public class Employee { [Required] [RegularExpression] public string Name { get; set; } } 当我在文本框中键入空格时,必填字段验证不会触发(尽管我保留了requiredvalidation的allowemptysting属性) 我已经编写了一个自定义验证,并计划覆盖IsValid(),如下所示: [AttributeUsage(AttributeTargets.P
public class Employee
{
[Required]
[RegularExpression]
public string Name { get; set; }
}
当我在文本框中键入空格时,必填字段验证不会触发(尽管我保留了required
validation的allowemptysting
属性)
我已经编写了一个自定义验证,并计划覆盖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
}
}
在我的代码中,这个验证应该在没有页面刷新/回发的情况下启动
但是,
IsValid()
没有被调用,有人能帮我解决这个问题吗?因为我没有将页面发布到服务器,IsValid()不会激发因为我没有将页面发布到服务器,IsValid()不会激发这个答案有用还是这个?这个答案有用还是这个?
public class Employee
{
[CustomRequiredValidatiorAttribute]
[RegularExpression]
public string Name { get; set; }
}