控制器在发布日期时间时收到空值

Controller receives null when posting datetime

情况:我有一个应用程序,我只想在其中执行一些 CRUD 操作。例如,我有一个软件 class,它包含 ID、名称和生命周期结束 (EOL) 日期。

当我想更新软件产品时,生命周期结束 属性 不会更新。它始终为空。我读到我应该为日期尝试一个自定义模型活页夹,但我无法让它工作。我使用 jQuery UI 日期选择器,但我不确定自己做错了什么。我尝试了不同的格式(dd.MM.yyyy、dd/MM/yyyy、...),但均无效。我还尝试将此添加到我的 web.config 文件中(但没有成功):

<system.web>
    <globalization
       fileEncoding="utf-8"
       requestEncoding="utf-8"
       responseEncoding="utf-8"
       culture="de-DE"
       uiCulture="de-DE"
    />
</system.web>

这是我的代码:

Sofware.cs:

public class Software {
    [Key]
    public int Id { get; set; }

    [StringLength(200)]
    [Required]
    public string Name { get; set; }

    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "dd.MM.yyyy", ApplyFormatInEditMode = true)]
    public DateTime? EndOfLife { get; set; }
}

SoftwareController.cs:

// ...
[HttpPost]
public IActionResult Edit(Software software)
{
    if (ModelState.IsValid)
    {
        //....
    }
}
// ...

Edit.cshtml

// ...
  <tr>
     <td>
        <label for="EndOfLife">End of Life</label>
      </td>
      <td>
      <input type="datetime" id="EndOfLife" value="@software.EndOfLife" class="form-control datepicker">
       </td>
   </tr>
// ...

site.js

$(function() {
  $(".datepicker").datepicker({ dateFormat: "dd/mm/yy", showWeek: true, firstDay: 1 });
});

我搞砸了绑定。我认为它会使用 id 而不是名称。在我的 .cshtml 文件中添加名称属性后,一切都按预期工作。