Asp.net mvc 如何实现IValidatableObject?
我有3个文本框,主要的想法是,如果这些字段中的任何一个是空的,就会得到一条错误消息,但我不知道如何使用它…有什么帮助吗Asp.net mvc 如何实现IValidatableObject?,asp.net-mvc,validation,model-validation,Asp.net Mvc,Validation,Model Validation,我有3个文本框,主要的想法是,如果这些字段中的任何一个是空的,就会得到一条错误消息,但我不知道如何使用它…有什么帮助吗 [Required] public int? Day { get; set; } [Required] public int? Month { get; set; } [Required] public int? Year { get; set; } public System.Collections.Generic.IEnumerable<ValidationRe
[Required]
public int? Day { get; set; }
[Required]
public int? Month { get; set; }
[Required]
public int? Year { get; set; }
public System.Collections.Generic.IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Day == null || Month == null || Year == null)
{
yield return new ValidationResult("*");
}
}
[必需]
公共整数?日{get;set;}
[必需]
公共整数?月份{get;set;}
[必需]
公共整数?年份{get;set;}
public System.Collections.Generic.IEnumerable验证(ValidationContext ValidationContext)
{
如果(日==null | |月==null | |年==null)
{
返回新的ValidationResult(“*”);
}
}
试试这个,我希望下面的答案能对你有所帮助
继承ValidationAttribute
public class SingleMessageValidation : ValidationAttribute
{
public override bool IsValid(object obj)
{
DateValidation app = obj as DateValidation;
if (app.Day == null || app.Month == null || app.Year == null)
{
ErrorMessage = "In valid date enter all fields";
return false;
}
return true;
}
}
型号
[SingleMessageValidation]
public class DateValidation
{
public int? Day { get; set; }
public int? Month { get; set; }
public int? Year { get; set; }
}
查看
@model DateValidation
<h2>DateValidation</h2>
@using (Html.BeginForm())
{
@Html.ValidationSummary()
@:Day: @Html.TextBoxFor(x => x.Day)
<br />
@:Month: @Html.TextBoxFor(x => x.Month)
<br />
@:Year: @Html.TextBoxFor(x => x.Year)
<input type="submit" value="Click" />
}
@模型日期验证
日期验证
@使用(Html.BeginForm())
{
@Html.ValidationSummary()
@:Day:@Html.TextBoxFor(x=>x.Day)
@:Month:@Html.TextBoxFor(x=>x.Month)
@:Year:@Html.TextBoxFor(x=>x.Year)
}
如何在我的视图中调用此验证?@无,我已使用视图更新了答案。选中可以避免此validationSummary,因为我想使用@Html.ValidationMessageFor(m=>m.Birthdate)。。。如果你知道我的意思?因为我有更多的字段要验证,我想在field@None,您可以尝试Java脚本验证