【发布时间】:2014-05-10 13:19:24
【问题描述】:
在我的网页上,我输入了我保留当前日期的位置:
@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上方的数据
但需要输入框默认数据有效。用户仅在需要更改当前日期以外的数据时才应使用 Datepicker。
我应该如何修改我的代码?我尝试在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"在我看来有点可疑。那些单引号正确吗? -
@RajaDani:那行不通,因为
m是几分钟,而不是几个月。 -
@Cerbrus 单引号是斜线的转义标记。没有它们,日期字符串如下
31-03-2014 -
dd/MM/yyyy 将不起作用。使用 MM/dd/yyyy。它会工作
-
啊,有道理:)
标签: c# javascript jquery asp.net-mvc