小编Nic*_*ein的帖子

EditorFor on nullable DateTime - "Nullable对象必须有值".

我试图显示一个表单,允许用户为一个人输入新的作业.我正在使用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)

asp.net-mvc-3

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

asp.net-mvc-3 ×1