【发布时间】:2018-03-21 22:46:53
【问题描述】:
我是这里的新手。我在这里遇到了类似的问题,但没有一个有帮助。我的ViewModel 中有以下内容:
public DateTime FromDate { get; set; }
public DateTime ToDate { get; set; }
当我运行代码时,在GET Method 之后的View 中,我得到的默认日期为:01/01/0001,换句话说,null/默认值。我在网上搜索,发现我需要将这些字段设为nullable。因此,我把上面的代码改成:
public DateTime? FromDate { get; set; }
public DateTime? ToDate { get; set; }
更改后,FromDate 和 ToDate 都出现以下错误:
不能隐式转换类型“System.DateTime?”到“系统。日期时间”。存在显式转换(您是否缺少演员表?)
怎么办?
编辑:
[HttpPost]
public IActionResult Locate(...)
{
InventoryHistory history = new InventoryHistory();
...
...
history.FromDate = locationsViewModel.FromDate;
history.ToDate = locationsViewModel.ToDate;
...
...
_context.Add(history);
_context.SaveChanges();
return RedirectToAction("Details");
}
【问题讨论】:
-
哪里出错了?您如何将视图模型映射到数据模型? (作为旁注,
01/01/0001的值不是null) -
@StephenMuecke,这应该会有所帮助。见编辑
-
您显示的代码不会产生该错误。它发生在哪里? (并删除输入中毫无意义的
name和id属性——它们已经为你创建了——无论如何,在使用TagHelper 时你永远不应该设置name属性) -
@StephenMuecke,既然我们已经找到了正确的解决方案,您能否发布它以便我将其标记为正确?这将有助于其他可能在未来遇到相同/类似问题的人。
标签: asp.net-mvc twitter-bootstrap asp.net-core-mvc bootstrap-datepicker