Model DisplayFormat's DataFormat Error in MVC3
本文关键字:DataFormat Error in MVC3 DisplayFormat Model | 更新日期: 2023-09-27 17:50:08
这是我基于当前文化设置日期格式的模型。
我试图避免硬编码,如DataFormatString = "{0:MM/dd/yyyy}"这样做的原因是获取当前文化模式
[Required(ErrorMessage = "Date is required")]
[DisplayFormat(ApplyFormatInEditMode = true,
DataFormatString = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.ToString())]
[Display(Name = "Date", ResourceType = typeof(Resources.Global))]
public DateTime Date { get; set; }
and in .cshtml
@Html.TextBox("Date",
Model.Date.ToString("d", System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat), new { @class = "datePicker" })
问题:我得到一个错误
属性参数必须是一个常量表达式typeof属性参数类型
的表达式或数组创建表达式
是否有办法显示当前文化基于短日期在MVC文本框帮助?
{0:d}
为当前培养ShortDatePattern
,
代替
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.ToString())]
你应该使用
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = {0:d})]
设置后,DataFormatString仅在EditorFor和DisplayFor中使用。所以你应该把视图改为
@Html.EditorFor(model => model.Date, new { @class = "datepicker" })
记住在视图的顶部添加@model YourModel