我在使用bootstrap datepicker绑定模型属性时遇到问题。我收到以下错误:
值DATE对DATEFIELD
无效这就是我的模型中属性的定义方式:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime FechaDesignado { get; set; }
这是构建视图的方式:
<div class="form-group">
<div>
<input type="datetime" class="datepicker form-control" asp-for="@item.FechaDesignado"/>
<span asp-validation-for="@item.FechaDesignado" class="text-danger"></span>
</div>
</div>
转换为:
<div class="form-group" form="form1">
<div>
<input type="datetime" class="datepicker form-control" data-val="true" data-val-required="The FechaDesignado field is required." name="item.FechaDesignado" value="09/01/1901" />
<span class="text-danger field-validation-valid" data-valmsg-for="item.FechaDesignado" data-valmsg-replace="true"></span>
</div>
</div>
这就是它在我的数据库上的样子。
这是datepicker的代码:
<script type="text/javascript">
$(function () {
$('.datepicker').datepicker({
"autoclose": true
});
});
</script>
在控制器内发布行动:
[HttpPost, ActionName("Management")]
//[ValidateAntiForgeryToken]
public async Task<IActionResult> Management(int? id)
{
var storetoupdate = _context.Stores.SingleOrDefault(m => m.StoreID == id.Value);
if (await TryUpdateModelAsync(
storetoupdate, "item",
s => s.StoreName, s => s.IncomePeriodicity, s=>s.Usuario, s => s.FechaDesignado))
{
await _context.SaveChangesAsync();
return RedirectToAction("Management");
}
return RedirectToAction("Management");
}
问题:似乎我必须使用DateTime.ParseExact
将日期输入字段转换为日期时间对象,但我不知道如何编辑控制器。对不起,但我正在学习这一切。
感谢。
答案 0 :(得分:1)
您可以使用DateTime.ParseExact
将date
格式转换为datetime
。有关详细信息,请参阅this。
修改强>
您可以使用data-format
这样的属性来发布正确的格式日期:
<input data-format="0:MM/dd/yyyy" type="datetime" class="datepicker form-control" asp-for="@item.FechaDesignado"/>