C# datetime.tryparse始终返回false

C# datetime.tryparse始终返回false,c#,asp.net-mvc,entity-framework,data-annotations,C#,Asp.net Mvc,Entity Framework,Data Annotations,我正在学习asp.net课程,我是c语言的新手# 我创建了一个表单,它有一个日期输入字段,它总是返回 无效消息 以下是输入的代码: <div class="form-group"> @Html.LabelFor(m => m.Date) @Html.TextBoxFor(m => m.Date, new { @class = "form-control",placeholder="e

我正在学习asp.net课程,我是c语言的新手#

我创建了一个表单,它有一个日期输入字段,它总是返回 无效消息 以下是输入的代码:

    <div class="form-group">
        @Html.LabelFor(m => m.Date)
        @Html.TextBoxFor(m => m.Date, new { @class = "form-control",placeholder="eg 1 Jan 2015" })
        @Html.ValidationMessageFor(m => m.Date)
    </div>
这是出现问题的futuredate数据注释的代码:

public class FutureDate : ValidationAttribute
    {
        public override bool IsValid(object value)
        {
            DateTime dateTime;
            var isValid = DateTime.TryParseExact(Convert.ToString(value),
                "d MMM YYYY",
                CultureInfo.CurrentCulture,
                DateTimeStyles.None,out dateTime);
            return (isValid && dateTime > DateTime.Now);

        }
    }
尽管我在调试时注意到datetime变量没有更新
使用输入字段值并返回{01/01/0001 12:00:00}

年份说明符为小写。有关参考信息,请参阅

var isValid = DateTime.TryParseExact(Convert.ToString(value),
            "d MMM yyyy",
            CultureInfo.CurrentCulture,
            DateTimeStyles.None,out dateTime);
工作示例:


与非工作状态相比:

年份说明符是小写的。有关参考信息,请参阅

var isValid = DateTime.TryParseExact(Convert.ToString(value),
            "d MMM yyyy",
            CultureInfo.CurrentCulture,
            DateTimeStyles.None,out dateTime);
工作示例:


与非工作日期相比:

您尝试解析的日期正好是
“eg 2015年1月1日”
?@Charlieface日期是“2030年11月1日”,您尝试解析的日期正好是
“eg 2015年1月1日”
?@Charlieface日期是“2030年11月1日”即使将yyyy更改为小写,验证错误仍然存在。请仔细检查您的输入,即:
Convert.ToString(value)
返回什么值?这段代码有效。无错误,它返回“2030年1月1日”的
true
。即使将yyyy更改为小写,验证错误仍然存在。请仔细检查您的输入,即
Convert.ToString(value)
?这段代码有效。无错误,并返回“2030年1月1日”的
true