我正在尝试将今天的日期加载到Core 1.1中的HTML5日期输入类型,但是当我在控制器中设置今天的日期时,我在页面的控制台中收到以下错误。
指定值“9/3/2017 12:00:00 AM”不符合所需格式“yyyy-MM-dd”。
AddWorkOrder.cshtml
<div class="form-group">
<b>Issue Date:</b>
@Html.TextBoxFor(Model => Model.NewWorkOrder.workOrderIssueDate, new { @class = "form-control", @type = "date", @value = Model.NewWorkOrder.workOrderIssueDate.ToString("yyyy-MM-dd") })
@Html.ValidationMessageFor(Model => Model.NewWorkOrder.workOrderIssueDate, "", new { @class = "valColor" })
</div>
WorkOrderController.cs
// GET : /WorkOrder/AddWorkOrder
public IActionResult AddWorkOrder()
{
WorkOrderViewModel workOrderVm = new WorkOrderViewModel();
using (var db = new WorkOrderDBContext())
{
workOrderVm.NewWorkOrder = new WorkOrder();
workOrderVm.NewWorkOrder.workOrderIssueDate = DateTime.Today;
}
return View(workOrderVm);
}
我已尝试将教科书的值设置为@value = DateTime.Today.ToString("yyyy-MM-dd")
,并且不会加载日期。
答案 0 :(得分:2)
您可以使用这样的数据格式属性来发布正确的格式日期:
@Html.TextBoxFor(Model => Model.NewWorkOrder.workOrderIssueDate, "{0:yyyy-MM-dd}", new { @class = "form-control", @type = "date" })
答案 1 :(得分:0)
我遇到了一个非常类似的问题,但我有一个线索,因为我在输入表单上有两个日期,一个正在工作而另一个没有。我很困惑,因为HTML和Razor标记完全一样。然后我注意到,对于没有按预期工作的日期,我在模型中用
修饰了属性[DataType(DataType.Date)]
但是对于正常工作的值,我将其装饰为
[DataType(DataType.DateTime)]
一旦我将它们都改为DateTime,错误便消失了。我不假装理解为什么。