在mvc中将值设置为引导日期类型文本框

时间:2015-03-21 14:46:23

标签: asp.net-mvc twitter-bootstrap asp.net-mvc-4

我无法绑定日期类型的datetime数据类型bootstrap文本框。以下是我的模特。

  public class EmployeeApplications
    {
    ....
        [DataType(DataType.DateTime)]
        public DateTime ApplicationDate { get; set; }
        public long UserId { get; set; }
    }

我强烈地将我的模型绑定到一个视图,其中ApplicationDate属性绑定到下面的日期类型文本框。

@Html.TextBox("ApplicationDate",String.Format("{0:d}", @p.ApplicationDate.ToShortDateString()),new { @class = "form-control datecontrol", @type = "date"  })

我的问题是我的日期文本框不显示ApplicationDate返回的选定日期。我尝试了许多失败的事情。我偶然发现了一个教程here并尝试了他的例子。都失败了。请问我该如何设定价值?我做错了什么?

3 个答案:

答案 0 :(得分:1)

试试这个:

$(".datecontrol").datepicker("update", new Date());

答案 1 :(得分:1)

要使用HTML5,日期必须采用ISO格式(yyyy-MM-dd)格式化。

@Html.TextBoxFor(m => m.ApplicationDate, "{0:yyyy-MM-dd}", new { @class = "form-control datecontrol", type = "date" })

附注:

  1. [DataType(DataType.Date)]仅适用于使用 Html.EditorFor(),在这种情况下您还可以添加显示 使用[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}" ApplyInEditMode = true)]格式化并使用生成控件 @Html.TextBoxFor(m => m.ApplicationDate),但只有MVC 5.1+ 支持添加html属性(即bootstrap类名) 对于MVC 4,有必要使用Html.TextBoxFor()
  2. 仅在现代浏览器中支持HTML5 datepicker控件 而且在FireFox中根本没有。

答案 2 :(得分:0)

由于像我这样的人可能无法分配格式并进行数小时的调试,因此您可以查看引导程序显示的格式。并设置所需的格式。

@Html.TextBoxFor(m => m.ApplicationDate, "{0:MM/dd/yyyy HH:mm tt}", new { @class = "form-control datetimepicker"})

我的javascript调用此函数时不使用格式

  $('.datetimepicker').datetimepicker();