こんにちは、登録ページの一貫した検証を作成しようとしています。問題が発生しているプロパティは次のとおりです。
[DateTimeValidation(ErrorMessageResourceType = typeof(EnValidationResources), ErrorMessageResourceName = "__LK_UserModel_BirthDate_Is_Required__")]
public DateTime BirthDate { get; set; }
テスト中に、 DateTime に独自の検証属性を追加したとしても、次のことに気付きました。
public class DateTimeValidation: ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var dateTimeString = value.ToString();
DateTime dateTimeParseResult;
DateTime.TryParse(dateTimeString, out dateTimeParseResult);
if (dateTimeParseResult.Equals(default(DateTime)))
{
return new ValidationResult(ErrorMessageString);
}
return null;
}
}
ユーザーが null の DateTime を投稿した場合でも、次の応答テキストが返されます。
「null 値を System.DateTime に変換できません。パス 'birthDate'、行 1、位置 17。」
組み込みのエラー応答テキストを返さないように asp.net web.api を作成するにはどうすればよいですか?