C# datetime.tryparse始终返回false
我正在学习asp.net课程,我是c语言的新手# 我创建了一个表单,它有一个日期输入字段,它总是返回 无效消息 以下是输入的代码: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
<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
。