我需要帮助在EditorFor中格式化这样的日期。 3/2017等等。我尝试编码,但我发现出了问题。
示例:
public class ValidDate : ValidationAttribute
{
public override bool IsValid(object value)
{
DateTime dateTime;
var isValid = DateTime.TryParseExact(Convert.ToString(value),
"MM/yyyy",
CultureInfo.CurrentCulture,
DateTimeStyles.None,
out dateTime);
return isValid;
}
}
[ValidDate]
public DateTime Date { get; set; }
有效结果示例:
1/2017
2/2017
3/2017
4/2017
5/2017
6/2017
7/2017
8/2017
9/2017
10/2017
11/2017
12/2017
答案 0 :(得分:1)
我检查了你的属性,发现你将日期作为M / yyyy格式传递。 这就是您需要更改属性的原因如下:
public class ValidDate : ValidationAttribute
{
public override bool IsValid(object value)
{
DateTime dateTime;
var isValid = DateTime.TryParseExact(Convert.ToString(value),
"M/yyyy",
CultureInfo.CurrentCulture,
DateTimeStyles.None,
out dateTime);
return isValid;
}
}