我试图显示一个表单,允许用户为一个人输入新的作业.我正在使用DateTime.cshtml EditorTemplate来处理赋值的DateTime值.不可为空的DateTime工作正常.可空的DateTime导致"InvalidOperationException:Nullable对象必须具有值".
我有一个看起来像这样的简单viewmodel:
AssignmentViewModel.cs:
public Person Person { get; set; }
public Assignment NewAssignment { get; set; }
Run Code Online (Sandbox Code Playgroud)
Assignment.cs包含:
public DateTime AssignmentStartDate { get; set; }
public DateTime? AssignmentEndDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的AssignmentController Create()方法如下所示:
public ViewResult Create(int personId)
{
Person person = personRepository.GetPersonById(personId);
var newAssignment = new AssignmentViewModel { Person = person, NewAssignment = new Assignment() };
return View(newAssignment);
}
Run Code Online (Sandbox Code Playgroud)
我的Create.cshtml视图如下所示:
@model AssignmentViewModel
@using (Html.BeginForm("Create", "Assignment"))
{
@Html.Hidden("NewAssignment.PersonId", Model.Person.PersonId)
@Html.LabelFor(x => x.NewAssignment.AssignmentStartDate):
@Html.EditorFor(x => x.NewAssignment.AssignmentStartDate.Date, new { cssClass = …Run Code Online (Sandbox Code Playgroud)