C# mvc验证日期/时间至少为1分钟
我仍然在争取MVC 我见过几个类似的问题,一些自定义代码和各种方法,但我没有找到适合我的方法 我有一个搜索模型,在局部视图中用结果填充HTML表。我的搜索结果模型中有以下内容:C# mvc验证日期/时间至少为1分钟,c#,asp.net-mvc,validation,C#,Asp.net Mvc,Validation,我仍然在争取MVC 我见过几个类似的问题,一些自定义代码和各种方法,但我没有找到适合我的方法 我有一个搜索模型,在局部视图中用结果填充HTML表。我的搜索结果模型中有以下内容: public DateTime? BeginDateTime { get; set; } 设置为DateTime。现在在控制器中。用户可以使用模型的POST调用上的搜索结果数据指定运行任务的日期和时间 我想做的是验证用户定义的日期/时间在将来至少为1分钟。如果这可以作为一个客户端验证来完成,那会更好,但只要它有效,我愿
public DateTime? BeginDateTime { get; set; }
设置为DateTime。现在在控制器中。用户可以使用模型的POST调用上的搜索结果数据指定运行任务的日期和时间
我想做的是验证用户定义的日期/时间在将来至少为1分钟。如果这可以作为一个客户端验证来完成,那会更好,但只要它有效,我愿意接受各种选择
视图:
谢谢。创建一个新属性:
public class FutureDateAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
return value != null && (DateTime)value > DateTime.Now;
}
}
现在,在模型中设置此属性:
[FutureDate(ErrorMessage="Date should be in the future.")]
public DateTime Deadline { get; set; }
这是检查所选日期是否来自未来的另一个好方法
public class FutureDate : ValidationAttribute
{
public override bool IsValid(object value)
{
DateTime dateTime;
var isValid = DateTime.TryParseExact(
//Getting the value from the user.
Convert.ToString(value),
//We want the user to enter date in this format.
"d mmm yyyy",
//It checks if the culture is us-en
CultureInfo.CurrentCulture,
//Mosh has no idea what this does.
DateTimeStyles.None,
//Output parameter.
out dateTime);
return (isValid && dateTime > DateTime.Now);
}
}
将来,您应该显示所需的模块
public class FutureDate : ValidationAttribute
{
public override bool IsValid(object value)
{
DateTime dateTime;
var isValid = DateTime.TryParseExact(
//Getting the value from the user.
Convert.ToString(value),
//We want the user to enter date in this format.
"d mmm yyyy",
//It checks if the culture is us-en
CultureInfo.CurrentCulture,
//Mosh has no idea what this does.
DateTimeStyles.None,
//Output parameter.
out dateTime);
return (isValid && dateTime > DateTime.Now);
}
}