C# - 值 'dd/mm/yyyy' 对 Value 无效

Posted

技术标签:

【中文标题】C# - 值 \'dd/mm/yyyy\' 对 Value 无效【英文标题】:C# - The value 'dd/mm/yyyy' is not valid for ValueC# - 值 'dd/mm/yyyy' 对 Value 无效 【发布时间】:2018-01-24 02:31:00 【问题描述】:

我想在我的应用程序中使用日期格式为dd/mm/yyyy

我有一个模型如下 -

public class PatientDetailModel

    [Display(Name = "OPH_GOS1_SightTestDate", ResourceType = typeof(Ophthalmic))]
    [DisplayFormat(DataFormatString = "0:dd/MM/yyyy", ApplyFormatInEditMode = true)]
    public DateTime SightTestDate  get; set; 

并查看 -

 @html.LabelFor(p => p.SightTestDate)
    <div class="display-flex">
        @Html.TextBoxFor(m => m.SightTestDate, new  @class = "form-control datepicker", autocomplete = "off", placeholder = "dd/mm/yyyy", id = "txtSightTestDate" )
 </div>

jQuery 代码 -

 $("#txtSightTestDate").datepicker( format: 'dd/mm/yyyy', autoclose: true );

这以dd/mm/yyyy 的格式向我显示日期,但是当我提交页面时,它给了我一个错误 -

15/08/2017 的值对于 SIGHT TEST DATE 无效。

提交时好像是mm/dd/yyyy格式。

【问题讨论】:

这是客户端错误(您需要重新配置 $.validator)还是服务器端错误(您的应用程序的文化也必须接受 dd/MM/yyyy 格式的日期,或者您需要自定义 ModelBinder ) 它看起来不像是采用 mm/dd/yyyy 的格式,因为明确指出:15/08/2017 无效。如果它正在更改格式,则错误应该是 08/15/2017。 [DisplayFormat(DataFormatString = "0:dd/MM/yyyy", ApplyFormatInEditMode = true)] 删除它并重试即可 @omkar-patade 您使用的是哪个 .datepicker jquery API? 我认为这个答案可能适用于您的情况:***.com/a/16885042/2048391 诀窍是使用已克隆的隐藏日期元素。 【参考方案1】:

在 Global.asax 文件中应用带有 datetimeformat 的cultureInfo 对我有用。

【讨论】:

【参考方案2】:

在模型定义字符串属性并在回发时从所述格式解析您的日期时,有一个解决方法。

调试您的客户端代码或使用不同的组合(如 yyyy/MM/dd)改组格式,如果它有效,那么您的 jquery 插件有解析问题。

【讨论】:

以上是关于C# - 值 'dd/mm/yyyy' 对 Value 无效的主要内容,如果未能解决你的问题,请参考以下文章

c#字符串日期格式从d.M.yyyy到yyyy-MM-dd

C# DateTime.ToString()的各种日期格式

dd/mm/yyyy 格式的日期正则表达式,用于 javascript 验证

当我将 excel(dd/mm/yyyy) 中的日期格式导入 msaccess 时,它显示非日期值

如何在 libreoffice calc 中将日期格式从 MM/DD/YYYY 更改为 DD/MM/YYYY?

如何使用 PHPExcel 库读取 excel 一个单元格日期(DD/MM/YYYY)值并将日期格式转换为(M/D/YYYY)