【问题标题】:How to set value of default date in DateTime EditorFor如何在 DateTime EditorFor 中设置默认日期的值
【发布时间】:2020-01-23 02:46:20
【问题描述】:

我尝试了不同的方法来制作 dateTime 文本框,这是可行的方法,但问题是我无法设置默认日期。

这是我正在做的事情:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]

然后我把日期定在今天,DateTime.Now 这样model.NotifyDate = DateTime.Now;

它没有设置日期。但是,如果我从模型中删除 [DataType(DataType.Date)],我将得到:

我会得到日期,但日历不见了。有什么问题?还是我使用datepicker 错了?

这是我的观点:

@Html.EditorFor(m => m.NotifyDate, new { htmlAttributes = new { @class = "form-control input-sm" } })

【问题讨论】:

    标签: c# jquery asp.net-mvc datepicker


    【解决方案1】:

    你在正确的轨道上!此类默认值应在ViewModel
    中设置 (看起来你正在使用model.NotifyDate = DateTime.Now;

    这里的问题似乎是浏览器期望生成的 html input 元素的值具有不同的格式——即 yyyy-MM-ddyyyy/MM/dd
    (注意使用 -/

    为了让浏览器正确显示日期,值的格式必须为2019-09-23

    例如:

    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
    

    Here 是对类似问题的一个很好的回答,它也应该能更清楚地了解正在发生的事情。

    【讨论】:

    • 还是同样的问题。如果我删除[DataType(DataType.Date)] 可以设置,但不会出现日历。
    • @AdorableVB 对,如果你删除 [DataType(DataType.Date)] 生成的 html input 元素将有 type=datetime - 这是不受支持的 - 所以浏览器不会知道显示日期选择器。我已经编辑了我的答案,以包含指向另一个 SO 问题/答案的链接,该链接应该可以进一步了解正在发生的事情。
    • 我不知道它今天是如何工作的,我很确定我昨天也在做同样的事情,但是 "{0:yyyy-MM-dd}" 成功了。我猜浏览器只接受这种格式,我担心的是它仍然在显示MM/dd/yyyy
    【解决方案2】:

    你应该在 js 中试试这个日期选择器。

    $('.date').datepicker({
                format: "dd.mm.yyyy",
                weekStart: 1,
                clearBtn: true,
                todayBtn: "linked",
                language: "tr",
                startDate: new Date(),
                autoclose: true
            });
    

    【讨论】:

      【解决方案3】:

      由于浏览器期望生成的 HTML 输入的值,您要么需要使用客户端 javascript(或客户端日期选择器)提供值,要么将值绑定到模型。

      您可以将值绑定到模型并从控制器传递到视图,如下所示。

      public async Task<ActionResult> Create()
      {
          var dateInfo = new DateInfo()
                  {
                      StartDate = DateTime.Now
                  };
          return View(dateInfo);
      }
      

      或者您可以从客户端分配值。 jQuery UI 简单且易于实现。你可以Visit.

      【讨论】:

        猜你喜欢
        • 2018-05-11
        • 2020-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多