1

重複の可能性:
カスタム検証属性 ASP.NET MVC

Attribute.cs ファイルと Models.cs ファイルをセットアップしました。

Models.cs には、次のものがあります。

[Required(ErrorMessage = "*")]
[Display(Name = "DOB")]
public DateTime DOB { get; set; }

[Required(ErrorMessage = "*")]
[Display(Name = "Age")]
[Range(7,12,ErrorMessage = "Age must be between 7-12")]
[DOB()]
public string Age { get; set; }

Attribute.cs ファイルにカスタム検証 (DOB関数) を作成しました。

DOBその関数で、フィールドを確認して自動的に年齢値を割り当てるにはどうすればよいですか? DOB値を取得する方法さえわかりません。

私はattribute.csに次のものを持っています。そこにブレークポイントを置くと、この関数に問題なくヒットします:

namespace SF.Validation
{
    public class DOBAttribute : ValidationAttribute
    {
        public DOBAttribute(string dob)
        {
            //not sure how to grab DOB value?? Need to do it here.
            //this just validates user input, but need to change to automatically 
            //assign the age based on DOB
            DateTime now = DateTime.Today;
            int age = now.Year - DOB.Year; //DOB.Year isn't grabbing anything
            DateTime birthday = new DateTime(DOB.Year, DOB.Month, DOB.Day);

            if (now < birthday.AddYears(age)) age--;

            if (age < 7 || age > 12)
            {
                IsValid(false);
            }
            else
            {
                IsValid(true);
            }
        }

    }

}
4

0 に答える 0