我有一个简单的表与不可空的日期字段。该字段在数据库中具有默认值GetDate()。 数据库表通过EntityFramework提供, 当我让MVC 4模板为该表自动生成一个create.cshtml页面时,它可以工作,但是当我尝试运行该表时,出现错误: 传递的模型项到字典中是空的,但是这个字典需要一个类型为“System.DateTime”的非空模型项。MVC自动生成创建页面与日期抛出非空项目所需
CSHTML文件:
@model MyModel.Content
<div class="editor-label">
@Html.LabelFor(model => model.ActiveDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ActiveDate)
@Html.ValidationMessageFor(model => model.ActiveDate)
</div>
的EF自动生成的类:
public partial class Content
{
public int ID { get; set; }
public string Title { get; set; }
public int CategoryID { get; set; }
public string Content1 { get; set; }
public bool IsActive { get; set; }
public System.DateTime ActiveDate { get; set; }
public System.DateTime DeactiveDate { get; set; }
public System.DateTime LastEditDate { get; set; }
public string LastEditor { get; set; }
public virtual ContentCategory ContentCategory { get; set; }
}
这似乎并不像不寻常的方式来做到这一点。模板不应该能够处理创建新的不可空日期吗?
我该怎么做才能解决这个问题?
所以,你要创建一个视图模型,然后使用,而不是自动生成的模型和CSHTML文件?我可以做到这一点,但我想看看自动生成的文件可以带我多远。 – 2013-03-06 22:49:59
@JohnS首先复制模型类并从那里调整视图模型类。因此,在这种情况下,您的视图应该只改变顶部的'@ model'指向viewmodel,因为所有的字段名称将是相同的名称/类型。 – AaronLS 2013-03-06 23:08:02