البته در بین ویژگیهای اعتبارسنجی درجشده، لازم است مقدار "data-val-date="the field must be a date را به صورت زیر ویرایش کنیم:
string key = "data-val-date"; if (validationAttributes.ContainsKey(key)) { validationAttributes[key] = "تاریخ را به شکل صحیح وارد کنید"; }
همچنین اگر قصد داریم textbox مقدار اولیه نداشته باشد باید کد زیر را با ابتدای این متد اضافه کنیم:
DateTime defaultdate=new DateTime(); if (date == defaultdate) { return string.Empty; }
اگر بخش binding را نیز به صورت زیر تغییر بدهیم تحت هیچ شرایطی مشکلی پیش نخواهد آمد!
// nullable if (valueResult.AttemptedValue.Length == 0) { return valueResult.AttemptedValue; } // اگر تاریخ مقدار داشت مقدار آن کمتر یا بیشتر از 10 نباشد else if (valueResult.AttemptedValue.Length != 10) { modelState.Errors.Add(" تاریخ را به شکل صحیح وارد کنید (مثال " + DateTimeExtention.ToFarsi(DateTime.Now, null).ToString() + ") "); bindingContext.ModelState.Add(bindingContext.ModelName, modelState); return valueResult.AttemptedValue; } object actualValue = null; // یا یک تاریخ میلادی
البته در قسمت controller نیز بایستی valid بودن ModelState را بررسی کنیم.