C# 我输入的日期类型总是返回null给对象

C# 我输入的日期类型总是返回null给对象,c#,asp.net-mvc,date,C#,Asp.net Mvc,Date,所以我有一个视图,它应该返回一个名称和两个日期,但是日期似乎总是空的 我在create按钮上绑定了一个警报,以查看js从输入字段中读取的日期,它始终是正确的,但当返回到post操作时,该对象在StartedOn和FinishedOn上始终具有空值(如果它们是date?如果不是,则将01/01/2001作为日期,当我尝试将其保存到数据库中时,它抛出异常)“将datetime2数据类型转换为datetime数据类型导致值超出范围”) 我的问题是,如果可以为null,为什么它总是返回null?如果不可

所以我有一个视图,它应该返回一个名称和两个日期,但是日期似乎总是空的

我在create按钮上绑定了一个警报,以查看js从输入字段中读取的日期,它始终是正确的,但当返回到post操作时,该对象在StartedOn和FinishedOn上始终具有空值(如果它们是date?如果不是,则将01/01/2001作为日期,当我尝试将其保存到数据库中时,它抛出异常)“将datetime2数据类型转换为datetime数据类型导致值超出范围”)

我的问题是,如果可以为null,为什么它总是返回null?如果不可以,为什么它总是返回01/01/2001?我如何修复它

我的观点:

@model Data.Project

@{
    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Create</h2>


@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>Project</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.StartedOn, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.StartedOn, new { htmlAttributes = new {@class = "form-control",type="date" } })
                @Html.ValidationMessageFor(model => model.StartedOn, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.FinishedOn, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.FinishedOn, new { htmlAttributes = new {@class = "form-control" , type = "date" } })
                @Html.ValidationMessageFor(model => model.FinishedOn, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" id="11" />
            </div>
        </div>
    </div>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>
@section scripts{
    <script>
        $(function () {
            $("#11").on("click",function() {
                alert($("#StartedOn").val());
            })
        })
    </script>
}
我的型号:

 public class Project
    {
        [Key]
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }

        public DateTime? StartedOn { get; set; }

        public DateTime? FinishedOn { get; set; }

        [ForeignKey("ProjectId")]
        public virtual ICollection<Employee> EmployeesOnIt { get; set; }
    }
公共类项目
{
[关键]
公共int Id{get;set;}
[必需]
公共字符串名称{get;set;}
公共日期时间?开始于{get;set;}
公共日期时间?FinishedOn{get;set;}
[外键(“ProjectId”)]
公共虚拟ICollection EmployeesOnIt{get;set;}
}
该对象在StartedOn和FinishedOn上始终具有空值

因为您告诉它不要绑定这些值:

[Bind(Include = "Id,Name")] Project project
也许你应该把它们绑起来:

[Bind(Include = "Id,Name,StartedOn,FinishedOn")] Project project
该对象在StartedOn和FinishedOn上始终具有空值

因为您告诉它不要绑定这些值:

[Bind(Include = "Id,Name")] Project project
也许你应该把它们绑起来:

[Bind(Include = "Id,Name,StartedOn,FinishedOn")] Project project

我已经做了很多次同样的事情。它发生了。我做了很多次同样的事情。它发生了。