ASP.NETCore7Razormodelcustomvalidation-comparing2datesnotworking
创始人
2024-09-17 17:01:11
0

问题是在ASP.NET Core 7 Razor中,自定义验证模型中比较两个日期(或时间)的方法不起作用。解决这个问题可以使用ValidationAttribute类来实现自定义验证。在该类的构造函数中设置ErrorMessage属性,然后在IsValid方法中进行日期比较,如果不符合条件,则返回false。以下是示例代码:

public class DateRangeAttribute : ValidationAttribute
{
    private readonly DateTime _startDate;
    private readonly DateTime _endDate;

    public DateRangeAttribute(string startDate, string endDate)
    {
        _startDate = DateTime.Parse(startDate);
        _endDate = DateTime.Parse(endDate);
        ErrorMessage = "{0} must be between {1:d} and {2:d}";
    }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        DateTime date = (DateTime)value;

        if (date >= _startDate && date <= _endDate)
            return ValidationResult.Success;
        else
            return new ValidationResult(ErrorMessageString
                .Format(validationContext.DisplayName, _startDate, _endDate));
    }
}

在模型类中,使用该自定义验证:

public class MyModel
{
    [DateRange("2022-01-01", "2022-12-31")]
    [DataType(DataType.Date)]
    public DateTime MyDate { get; set; }
}

在视图中,可以像下面这样呈现自定义验证错误:


相关内容

热门资讯

透视游戏(德州免费辅助神器ap... 透视游戏(德州免费辅助神器app)轰趴十三水有后台吗(详细辅助规律教程)好像有挂;人气非常高,ai更...
wepoke有辅助挂!德扑之星... wepoke有辅助挂!德扑之星开桌怎么设置,(aapokeR)固有是真的有挂(详细透视wpk教程);...
透视私人局(wepoke ai... 透视私人局(wepoke ai辅助)德州之星app辅助器(详细辅助玩家教程)果然是真的有挂wepok...
wpk辅助挂!微扑克微乐辅助,... wpk辅助挂!微扑克微乐辅助,(AAPoker)原本是有挂(详细透视详细教程);建议优先通过wpk辅...
透视挂透视(智星德州菠萝)德州... 透视挂透视(智星德州菠萝)德州ai能盈利吗(详细辅助线上教程)总是有挂;人气非常高,ai更新快且高清...
aapoker猫腻!微扑克真的... aapoker猫腻!微扑克真的有外挂嘛,(来玩德州app)最初真的有挂(详细透视透明挂教程);玩家必...
透视神器(德州免费辅助神器ap... 透视神器(德州免费辅助神器app)wepoke智能ai(详细辅助德州论坛)确实真的是有挂;是一款可以...
智星德州菠萝外挂!菠萝德州ap... 智星德州菠萝外挂!菠萝德州app挂哪里买,(WPK)果然有挂(详细辅助可靠技巧)是一款可以让一直输的...
wepower有外挂!aapo... 这是一款非常优秀的wepower有外挂 ia辅助检测软件,能够让你了解到wepower有外挂中牌率当...
透视神器(德州之星辅助)德扑之... 透视神器(德州之星辅助)德扑之星可以看底牌吗(详细辅助新2025版)起初真的有挂1、这是跨平台的德州...