我在我的模型中使用DataType.Date属性,在我的视图中使用EditorFor.这在Internet Explorer 8和Internet Explorer 9中运行良好,但在谷歌浏览器中它显示日期选择器,而不是显示值,它只是在褪色的灰色文本中显示"月/日/年".
为什么Google Chrome不会显示价值?
模型:
[DataType(DataType.Date)]
public Nullable<System.DateTime> EstPurchaseDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
视图:
<td class="fieldLabel">Est. Pur. Date</td>
<td class="field">@Html.EditorFor(m=>m.EstPurchaseDate)</td>
Run Code Online (Sandbox Code Playgroud)


我有奇怪的问题.我的日期验证在Chrome中不起作用.我试过这个答案,但它对我不起作用.
我的模型中有这个:
[Display(Name = "Date")]
[DataType(DataType.Date)]
public DateTime Date { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的看法:
<div class="editor-field">
@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })
@Html.ValidationMessageFor(model => model.Item.Date)
</div>
$(document).ready(function () {
$('.picker').datepicker({
dateFormat: 'dd.mm.yy',
changeMonth: true,
changeYear: true,
selectOtherMonths: true
});
});
Run Code Online (Sandbox Code Playgroud)
一切都适用于Opera和Firefox,但Chrome不喜欢这种类型的日期.我经常收到以下错误The field 'Date' must be a date.
有任何想法吗?
UPDATE
当代码在局部视图中时,似乎存在问题.当我将该代码复制到主页时,验证工作正常.
我正在我的主视图中插入局部视图,就像这样:
@Html.Partial("_CreateOrEdit", Model)
Run Code Online (Sandbox Code Playgroud)
上面的代码在局部视图中:
@model Pro.Web.Models.Model
<div class="editor-field">
@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })
@Html.ValidationMessageFor(model => model.Item.Date)
Run Code Online (Sandbox Code Playgroud)
$(document).ready(function () { …Run Code Online (Sandbox Code Playgroud) 当使用jQuery UI Datepicker时,我们在Google Chrome中使用时会遇到问题:当我们输入日期高于12的日期时,它不接受它作为有效日期,这是因为chrome认为dateformat是mm/dd/YYYY.我们尝试通过添加代码来尝试将日期设置强制为dd/mm/yyyy来解决此问题
$('.date').datepicker({ dateFormat: "dd/mm/yy" });
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题,所以我们的datepicker将接受dd/mm/yyyy值?我们在Google Chrome中只有这个问题,datefix适用于firefox,即&safari.我们在这个项目中使用ASPX和MVC3.
如果有人能解决我们的问题,那就太好了
谢谢
我遇到了一个问题,我遇到了日期时间字段的客户端验证问题.当我尝试提交时,它一直告诉我日期无效(2013年7月27日).但是,如果我将日期转换为美国格式(2013年7月27日).
我的观点模型如下,
[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? AuditDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
的index.html
@Html.TextBoxFor(m => m.AuditDate)
Run Code Online (Sandbox Code Playgroud)
我已经更新了我的web.config
<globalization culture="en-AU" uiCulture="en-AU" />
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
谢谢
我在使用我的jQuery datepicker时遇到此错误.
jQuery的:
$( ".datepicker" ).datepicker({
defaultDate: +7,
autoSize: true,
dateFormat: 'dd.mm.yy',
});
Run Code Online (Sandbox Code Playgroud)
模型:
[DisplayName("Date")]
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
[Required(ErrorMessage = "Date is required")]
public DateTime Date { get; set; }
Run Code Online (Sandbox Code Playgroud)
所以我希望日期格式类似dd.MM.yyyy,当我使用datepicker选择日期时,它会正确添加到字段中.但同样在同一秒内,出现验证错误The field 'Date' must be a date.
我做了测试,手动编写格式的日期dd/MM/yy,然后看起来它正在工作.因此验证器会在某处查找该格式,但我无法找到修改它的位置.
我需要使用datepicker在SQL-Server DB中存储日期格式"29-12-2014",但我收到消息字段XXX必须是日期.
我的最后一次尝试是正则表达:
型号#1:
[RegularExpression(@"([3][0,1]|[0-2]\d)-([1][0-2]|[0]\d)-(\d\d\d\d)", ErrorMessage = "Valor inválido.")]
public Nullable<DateTime> ETD { get; set; }
Run Code Online (Sandbox Code Playgroud)
型号#2:
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}")]
public Nullable<DateTime> ETD { get; set; }
Run Code Online (Sandbox Code Playgroud)
视图:
<div class="editor-field">
@Html.TextBoxFor(model => model.ETD)
@Html.ValidationMessageFor(model => model.ETD)
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$(function () {
$("#ETD").datepicker();
});
Run Code Online (Sandbox Code Playgroud)
我总是收到消息"字段ETD必须是约会".
任何的想法?
谢谢.
之前已经问过这个问题,但答案并没有解决我的问题.问题是我总是在datetime字段中收到以下错误.
字段创建时间必须是日期.
我的尝试
这是我设置日期格式的模态
[Display(Name = "Created Time")]
[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> CreatedTime { get; set; }
Run Code Online (Sandbox Code Playgroud)
查看代码
<div class="form-group">
@Html.LabelFor(model => model.CreatedTime, "Timesheet Date")
<div class='input-group date' id='Datetimepicker1'>
@Html.TextBoxFor(model => model.CreatedTime, new { @class = "form-control" })
<span class="input-group-addon"> <span class="glyphicon glyphicon-calendar"></span> </span>
</div>
@Html.ValidationMessageFor(model => model.CreatedTime, "", new { @class = "text-danger" })
</div>
Run Code Online (Sandbox Code Playgroud)
在js
$('#CreatedTime').removeAttr("data-val-date");
$('#Datetimepicker1').datetimepicker({ format: 'DD/MM/YYYY' });
Run Code Online (Sandbox Code Playgroud)
也尝试改变jquery.validate.js功能date: function (value, element)如下,但无法解决问题.
if ($.browser.webkit) { …Run Code Online (Sandbox Code Playgroud) 当我在firefox和IE 9中保存点击事件时,我使用mvc4给了我验证的错误值,但在chrome工作正确.
必须设置日期格式dd M y(6月21日)请不要更改日期格式.为什么会发生这种情况我不知道请为此帮助我.
检查编辑这个jsfiddle
注意:请在Firefox(我的版本20.0.1)或IE 9中运行
此外,我尝试了不同类型的解决方案,但它不适合我.