ASP.NETCore7Razor模型自定义验证-比较2个日期不起作用
创始人
2024-09-17 17:01:12
0

在ASP.NET Core 7中,可以通过自定义验证来验证模型中的属性。然而,有时会遇到日期比较的问题,其中自定义验证失效。这可能是由于日期格式不正确或日期对象不正确导致的。以下是解决该问题的解决方案及其代码示例:

  1. 在模型中创建两个日期属性,并为它们添加自定义属性。例如:
public class MyModel
{
    [DataType(DataType.Date)]
    [Display(Name = "StartDate")]
    [MyDate(ErrorMessage = "Start date must be greater than end date.")]
    public DateTime StartDate { get; set; }

    [DataType(DataType.Date)]
    [Display(Name = "EndDate")]
    public DateTime EndDate { get; set; }
}
  1. 在自定义属性中进行日期比较。例如:
public class MyDateAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        var myModel = (MyModel)validationContext.ObjectInstance;
        DateTime startDate = myModel.StartDate;
        DateTime endDate = (DateTime)value;

        if (startDate <= endDate)
        {
            return ValidationResult.Success;
        }

        return new ValidationResult(ErrorMessage);
    }
}

在此示例中,我们将模型的属性转换为适当的日期时间类型,并进行日期比较。如果开始日期小于等于结束日期,则验证成功。

现在,当用户尝试选择具有错误日期顺序的日期时,自定义验证将阻止表单的提交,并显示错误消息。

相关内容

热门资讯

分享给玩家"佛手大菠... 分享给玩家"佛手大菠萝辅助"开挂(透视)hh poker辅助有用吗(有人有挂);打开点击测试直接进入...
专业讨论"hhpok... 大家好,今天小编来为大家解答hhpoker有辅助的吗这个问题咨询软件客服可以免费测试直接加微信(13...
技术分享"微信小程序... 技术分享"微信小程序四川微乐脚本"开挂(透视)哈糖大菠萝能开挂吗(真是有挂)《详细加薇1367043...
重大通报"皇豪互娱科... 重大通报"皇豪互娱科技软件"开挂(透视)wepoker数据分析(有挂方式);打开点击测试直接进入微信...
重大发现"微信传送屋... 【亲,微信传送屋辅助器下载 这款游戏可以开挂的,确实是有挂的,很多玩家在这款微信传送屋辅助器下载中打...
实测发现"广东雀神智... 实测发现"广东雀神智能插件辅助脚本"开挂(透视)wepoker免费脚本咨询(有挂秘籍)【无需打开直接...
每日必看教程"建德十... 每日必看教程"建德十三道辅助"开挂(透视)aapoker插件下载(了解有挂) 了解更多开挂安装加(1...
玩家必看秘籍"红河西... 您好:这款红河西元旗牌脚本游戏是可以开挂的,确实是有挂的,很多玩家在这款红河西元旗牌脚本游戏中打牌都...
揭秘几款"四川长牌辅... 揭秘几款"四川长牌辅助"开挂(透视)wepoker破解器(有挂技术);无需打开直接搜索薇:13670...
终于知道"陕西辅助&... 终于知道"陕西辅助"开挂(透视)哈糖大菠萝能开挂吗(有挂实锤)这是一款可以让一直输的玩家,快速成为一...