【问题标题】:Validation issues for DateTime in cloud云中 DateTime 的验证问题
【发布时间】:2017-04-24 14:56:44
【问题描述】:

我有一个带有表单的 Asp Mvc 5 应用程序。该表单有一个日期和时间文本字段,格式为:“dd/MM/yyyy HH:mm”。当我在本地运行验证时,验证工作正常。但是,当我将它部署到 Azure 时它失败了。

该字段在视图中生成如下:

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

ViewModel 的注解如下:

        [Required(ErrorMessage = "...", AllowEmptyStrings = false)]
        [DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd'/'MM'/'yyyy HH:mm}", ApplyFormatInEditMode = true)]
        [DisplayName("Date & time")]
        public DateTime DateField { get; set; }

另外,在主 web.config 我有:

  <system.web>
       <globalization culture="pl-PL" uiCulture="pl-PL" />
  </system.web>

由于我的表单位于区域内,我还在特定区域的 web.config 中添加了相同的设置。

【问题讨论】:

  • 你的DataType不应该是DataType.DateTime吗?将DataType.DateDataFormatString 结合使用似乎有点冲突。另外,我认为DataFormatString 中不需要单引号。

标签: asp.net-mvc validation azure asp.net-mvc-5


【解决方案1】:

我有同样的问题。虽然格式明确表示 dd/MM,即先天后月,但它仍然使用先月后天。为了解决这个问题,我使用了下面的格式,效果很好。

yyyy/MM/dd HH:mm

您也可以使用datetime-local 控件来渲染包含时间药水的日历。请注意,仅包括 Chrome 在内的某些浏览器支持此控件。

&lt;input type="datetime-local"&gt;

【讨论】:

  • 这是日期的一个已知缺点。您还打算如何解决这个问题?
猜你喜欢
  • 2018-03-12
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-10
  • 1970-01-01
相关资源
最近更新 更多