我正在尝试使用MVC 5和EF 6代码第一种方法开发应用程序。
我是软件开发人员的新手。
我想添加此数据注释:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
来自ViewModels
的名为Birthdate
的属性
举例说明:
public class StudentRegisterViewModel
{
public string LastName { get; set; }
public string FirstMidName { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime EnrollmentDate { get; set; }
}
此处的问题是,字段EnrollmentDate
无法识别DisplayFormat
注释。
有人可以帮助我,处理它吗?
答案 0 :(得分:0)
编写自己的ValidationAttribute
。为此,您可以使用自己的逻辑覆盖IsValid()
方法。
如果您愿意,可以添加更多验证:
public class MyAmazingValidationClass : ValidationAttribute
{
protected override bool IsValid(object value)
{
DateTime date;
bool parsed = DateTime.TryParse((string)value, out date);
//or maybe :
bool parsed = DateTime.ParseExact((string)value),"dd/MM/yyyy")
if(!parsed)
return false;
return true;
}
}
然后去你真棒的课程并装饰它:
public string FirstMidName { get; set; }
[DataType(DataType.Date)]
[MyAmazingValidationClass(ErrorMessage="You made a big mistake right now!")]
public DateTime EnrollmentDate { get; set; }
答案 1 :(得分:0)
[DisplayFormat]
属性仅供DisplayFor和EditorFor使用。而不是像TextBoxFor这样的其他助手。
要进一步格式化,您可以创建一个css类并使用jQuery来应用它:
$("EnrollmentDate").addClass("class-name")
答案 2 :(得分:0)
要应用[DisplayFormat]
中指定的格式,您需要通过Html.DisplayFor()
访问该值。例如,在以下视图中:
@Html.DisplayFor(vm => vm.EnrollmentDate)