值“XX/YY/ZZZZ”对日期时间变量无效
本文关键字:时间 日期 变量 无效 ZZZZ XX YY | 更新日期: 2023-09-27 17:55:48
在我的网页上,我输入了保存当前日期的位置:
@Html.TextBoxFor(model => model.CreationDate, new { @class = "form-control datepicker", @Value = DateTime.Now.ToString("dd'/'M'/'yyyy"), type = "datetime" })
它呈现为:
<input value="31/3/2014" class="form-control datepicker" data-val="true" data-val-date="The field CreationDate must be a date." data-val-required="Data jest wymagana" id="CreationDate" name="CreationDate" type="datetime">
如您所见,默认数据31/3/2014
但是当我尝试使用 Ajax 将其发送到我的方法时,我收到来自ModelState
的错误:
The value "31/3/2014" is not valid for CreationDate.
这就是模型中的内容:
+ CreationDate {0001-01-01 00:00:00} System.DateTime
此输入框也设置为bootstrap datepicker
:
$('.datepicker').datepicker({
format: "dd/MM/yyyy",
language: "pl",
autoclose: true,
todayHighlight: true
});
返回如下数据:
"31/Marzec/2014"
数据高于ModelState.Valid=true
但是需要输入框默认数据应该是有效的。仅当用户需要更改为当前日期以外的数据时,才应使用日期选择器。
我应该如何修改我的代码?我尝试弄乱toString()
格式,没有任何效果。
这是我的模型:
public class CreateDeviceInstance
{
public int Id { get; set; }
public int DeviceId { get; set; }
public string SerialNo { get; set; }
[Required(ErrorMessage="Data jest wymagana")]
public System.DateTime CreationDate { get; set; }
public Nullable<int> ProjectId { get; set; }
public bool Issue { get; set; }
public string IssueDetails { get; set; }
public Nullable<int> StorageId { get; set; }
public bool MeAsUser { get; set; }
}
您最初使用的是"dd'/'M'/'yyyy"
格式,
(DateTime.Now.ToString("dd'/'M'/'yyyy"))
和"dd/MM/yyyy"
格式稍后,
format: "dd/MM/yyyy"
这不好。
在这两种情况下使用相同的格式(我建议"dd/MM/yyyy"
)。
试试这个
public class CreateDeviceInstance
{
public int Id { get; set; }
public int DeviceId { get; set; }
public string SerialNo { get; set; }
[Required(ErrorMessage="Data jest wymagana")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public System.DateTime CreationDate { get; set; }
public Nullable<int> ProjectId { get; set; }
public bool Issue { get; set; }
public string IssueDetails { get; set; }
public Nullable<int> StorageId { get; set; }
public bool MeAsUser { get; set; }
}
DateTime.Now.ToString("dd/MM/yyyy")
> "31/Marzec/2014" 格式:"dd/MM/yyyy";不要使用大写字母来指定月份。引导日期选择器格式的日期格式:"dd/mm/yyyy"您的结果将更改 31/03/2014