2013-05-01 74 views
4

冲倒jQuery的日期选择器,我使用MVC 4剃刀意见时遇到了问题理解为什么关于我的日期字段的编辑看法是不正确结合内置的jQuery的日期选择器。数据类型属性的日期时间字段

该字段在数据库中的数据类型为Date,在域模型中为DateTime。我不想显示时间,只显示日期。该字段是必需的,需要格式化。

我的看法是这样的:

<div class="editor-label"> 
    @Html.LabelFor(model => model.Appointment.EndDate) 
</div> 
<div class="editor-field"> 
    @Html.EditorFor(model => model.Appointment.EndDate) 
    @Html.ValidationMessageFor(model => model.Appointment.EndDate) 
</div> 

如果我对这个领域的元数据是

[Required(ErrorMessage = "End Date must be a valid date, like 05/13/2016.")] 
[DataType(DataType.Date)] 
[Display(Name = "End Date")] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")] 
public object EndDate { get; set; } 

然后edit.cshtml我的编辑器输出是这样的:

<input class="text-box single-line" data-val="true" data-val-date="The field End Date must be a date." data-val-required="End Date must be a valid date, like 05/13/2016." id="Appointment_EndDate" name="Appointment.EndDate" type="date" value="05/09/2013"> 

这绘制一个jQuery datepicker但没有设置值。

如果我删除从我的元数据,数据类型的属性,离开一切是相同的:

[Required(ErrorMessage = "End Date must be a valid date, like 05/13/2016.")] 
[Display(Name = "End Date")] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")] 
public object EndDate { get; set; } 

那么我的编辑器输出是这样的:

<input class="text-box single-line valid" data-val="true" data-val-date="The field End Date must be a date." data-val-required="End Date must be a valid date, like 05/13/2016." id="Appointment_EndDate" name="Appointment.EndDate" **type="datetime"** value="05/09/2013"> 

由此得出一个简单的文本框(无日期选择器)的值正确设置。

我想使用datepicker,但设置正确的值,我该怎么做?

回答

0

试试下面的代码:

[DataType(DataType.Date)] 
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
public DateTime? EndDate { get; set; } 

(我用一个可空的日期时间;但它不是真正需要的)

,并在GUI中使用:

@Html.EditorFor(m => m.EndDate) 

这应该工作。

相关问题