我有这个型号:
[ModelBinder(typeof(DevExpressEditorsBinder))]
public class RegisterViewModel
{
[Required]
[DataType(DataType.Date)]
[Display(Name = "Дата рождения"), DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
public DateTime Birthdate { get; set; }
}
查看代码:
@*Html.EditorFor(s => s.Birthdate)*@
@Html.DevExpress().DateEditFor(s => s.Birthdate, settings =>
{
settings.Properties.DisplayFormatString = "dd.MM.yyyy";
settings.Properties.EditFormatString = "dd.MM.yyyy";
}).GetHtml()
第一个变体(评论过)完美无缺,但我需要使用DevExpress。只有当我在任何地方设置DateEdit
格式时,DevExpress MM.dd.yyyy
才会发送正确的值。否则,验证器输出:
字段Birthdate必须是日期。
如何解决此问题?
答案 0 :(得分:0)
根据DateEdit documentation,您可以使用下面显示的DateEditFor
将自定义修改格式设置为EditFormat.Custom
:
@Html.DevExpress().DateEditFor(s => s.Birthdate, settings =>
{
settings.Properties.DisplayFormatString = "dd.MM.yyyy";
settings.Properties.EditFormat = EditFormat.Custom; // add this line
settings.Properties.EditFormatString = "dd.MM.yyyy";
}).GetHtml()
正如@Stephen所说,DX扩展了基于jQuery包的客户端验证,这需要在布局页面或视图页面上加载jquery.validate.js
和jquery.validate.unobtrusive.min.js
。因此,您可以使用内置验证或远程验证来检查与EditFormatString
属性相关的日期格式(请参阅下面的参考资料)。
验证参考:
类似日期格式的相关问题: