如何使日期选择器处于未填充状态(其值为null)

本文关键字:null 状态 填充 日期 何使 选择器 于未 | 更新日期: 2023-09-27 18:26:41

我正在开发一个ASP.NET MVC 5网站。我有一个员工模型,看起来像这样:

public class Employee
{
public EmployeeID {get;set;}
//... other properties such as FirstName, Salary which are not important right now
public DateTime? EndingDate {get; set;} //this is important
}

视图的相应部分如下:

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

正如您所看到的,EndingDate可以为null,因为我不必填写EndingDate字段。如果我想在不填写EndingDate的情况下创建一名员工,我会收到一个验证错误,这是有道理的,因为在日期选择器上,值正是下面的dd.mm.yyy。这种情况发生在谷歌Chrome上。在Mozilla上,它默认为null,但表现得像一个文本框,而不是日期选择器。我使用的是bootstrapper-css类,我没有写一行前端开发代码;如果你接受这种语言。我尝试添加DisplayFormat属性来建模,但到目前为止没有成功。

有什么想法吗?还是浏览器的问题?

如何使日期选择器处于未填充状态(其值为null)

在这一点上,一个不知道任何方法。您可以尝试一个文本框,在其中填充数据并以动态方式验证它(偶然使用Angular)。考虑一下从一部哑手机中归档数据。你输入数字,它就会感觉到数据。

dateTimePicker1.CustomFormat= " ";