gpt4 book ai didi

c# - 使用 `String` 而不是 `Date` 类型时如何验证日期?

转载 作者:太空狗 更新时间:2023-10-29 22:12:55 27 4
gpt4 key购买 nike

在 Asp.net MVC 应用程序中,我继承了这个问题(如果它是一个问题?)其中一位开发人员使用 String 作为 Date 类型。

在我的模型中,属性为:

[Required]
[DisplayName("Registration Date")]
public string Registrationdate { get; set; }

业务要求是该字段不是必填,但如果该字段中有内容,则它必须是有效日期。

在不更改数据类型的情况下,您将如何实现此要求

最佳答案

It looks like you're使用 System.ComponentModel.DataAnnotations。使用此库执行此操作的最佳方法是创建一个新属性来验证日期字符串并将其应用于属性。下面是一些供您开始使用的代码:

[AttributeUsage(AttributeTargets.Property, Inherited = true)]
class DateAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
var dateString = value as string;
if (string.IsNullOrWhiteSpace(dateString))
{
return true; // Not our problem
}
DateTime result;
var success = DateTime.TryParse(dateString, out result);
return success;
}
}

您可能希望根据您期望从客户端获得的字符串类型来扩展此代码。此外,这不会为您提供任何客户端验证。

关于c# - 使用 `String` 而不是 `Date` 类型时如何验证日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4880598/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com