【问题标题】:ASP.NET MVC3: Displaying Date in correct format with JQuery DatePicker and editorFor/TextBoxForASP.NET MVC3:使用 JQuery DatePicker 和 editorFor/TextBoxFor 以正确的格式显示日期
【发布时间】:2012-03-01 01:30:41
【问题描述】:

在我的模型中,我有:

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
    public DateTime StartDate { get; set; }

不幸的是,它仅适用于 EditorFor,但我无法分配 EditorFor 类来启用 Jquery 日期时间选择器,因为没有 htmlAttributes 参数。

@Html.EditorFor(model => model.StartDate)
@Html.TextBoxFor(model => model.StartDate, new { @class = "datePicker", @readonly = "readonly" })

所以第一个只显示日期,但没有日期选择器。 第二个也显示时间 00:00 但有一个日期时间选择器。

注意:不要只是说,使用model.StartDate.ToString("mm/DD/yyyy")。它不起作用。

我怎样才能只设置日期。但是有一个时间选择器并且有只读的,所以我不能在里面输入任何数字。

【问题讨论】:

  • 我对 MVC 级别的解决方案感兴趣。我最终在我自己的项目中使用标准的 html 输入元素来实现这种效果。

标签: jquery asp.net asp.net-mvc-3 datepicker date-format


【解决方案1】:

我正在使用 jquery UI 日期选择器,而不是附加一个类标签,我通过以下方式设置默认日期格式:

    $(function () {
        $.datepicker.setDefaults({
            dateFormat: 'dd/mm/yy'
        });
    });

然后将其绑定到输入元素:

    $(function () {
        $("#StartDate").datepicker();
    });

希望对您有所帮助。这就是 EditorFor mvc 标签上的内容。

【讨论】:

  • 谢谢,是的,通过字段名分配它似乎是唯一的方法,因为您似乎无法设置 htmlattributes aka 类。然后使用我的显示代码,它可以应用模型的格式,并通过它使用 datetimepicker。虽然仍然无法设置只读。我的时间选择器是另一个问题。我用@Html.TextBoxFor(model => model.EndTime, new {@Value = Model.EndTime.ToString().Substring(0,5), @class = "timePicker", @readonly = "readonly" }) 克服了这个问题。疯狂
猜你喜欢
  • 2023-01-26
  • 2017-04-29
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 2019-10-15
  • 1970-01-01
  • 2021-10-19
  • 2014-04-28
相关资源
最近更新 更多