在asp.net MVC 5,我有从DTO对象显示数据的一种形式:ASP MVC日期时间验证错误
public class FieldDTO
{
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime StartFieldDate { get; set; }
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime StopFieldDate { get; set; }
public String FieldName { get; set; }
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime StartJob { get; set; }
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime StopJob { get; set; }
}
以我控制器类,我有:
public ActionResult Create()
{
var model = new FieldDTO();
model.StartFieldDate = DateTime.Now;
model.StopFieldDate = DateTime.Now;
model.StartJob = DateTime.Now;
model.StopJob = DateTime.Now;
...
...
}
在视图,我有:
<div class="col-md-10">
@Html.EditorFor(model => model.StartFieldDate, new { htmlAttributes = new { @class = "form-control datepicker" } })
@Html.ValidationMessageFor(model => model.DataTurno, "", new { @class = "text-danger" })
</div>
而且,我有用于其它控制器datetime
相同的剃刀代码。我为jQuery UI DatePicker添加了datepicker
类。
在表单中,如果我点击“创建”按钮,而不修改任何控件,一切正常。 当我改变最后两个datetime
采摘之一,然后点击“创建”按钮,我得到验证错误:The field xxxx must be a date.
我没有弄清楚是什么问题,因为所有的控制都产生相同办法。
哪里是你的jQuery日期选择器?这很可能是因为你的jQuery datepicker的日期格式。 – ataravati 2015-02-05 17:06:30
另外,在你的View中你可以用'EditorFor'来代替'DataTurno'的'model.StartFieldDate'和'ValidationMessageFor'。 – 2015-02-05 17:11:27