【发布时间】:2014-02-19 08:35:53
【问题描述】:
在局部视图中,我执行以下操作:
@Html.TextBoxFor(m=> m.DateFrom, new{@class="datepicker"})
@Html.TextBoxFor(m=> m.DateTo, new{@class="datepicker"})
这是日期选择器,在主视图中定义:
@section scripts
{
<script type="text/javascript">
$('.datepicker').datepicker({
changeMonth: true,
changeYear: true,
minDate: "-99Y",
dateFormat: "@CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern.Replace("yyyy", "yy").ToLower()"
});
</script>
}
这有两个问题:
1) 两个日期选择器都默认为 0001-01-01 00:00:00 2) 它们显示时间,如上所示。
我想我可以通过以下方式解决#1:
[Display(Name = "MyOrdersControl_From", ResourceType = typeof (SiteTextResources))]
public DateTime DateFrom
{
get { return _dateFrom.HasValue ? _dateFrom.Value : new DateTime(1970, 1, 1); }
set { _dateFrom = value; }
}
private DateTime? _dateFrom;
但是当我寻找消除时间的解决方案时,我会看到诸如添加之类的东西
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-mm-dd}")]
但这不仅不会删除时间,还会覆盖我对文化敏感的日期格式(我认为?)。我已经看到将 TextBoxFor 更改为 EditorFor 的建议,这确实解决了时间问题,但确实会丢失 datepicker 绑定。还有同样的文化问题。
怎么办?
【问题讨论】:
-
日期选择器有一个格式属性,您可以像这样使用
datepicker({ format: 'dd.mm.yyyy' }) -
我已经在使用 format 属性了。与文化信息一起。你是说我不应该?
标签: jquery asp.net-mvc datepicker asp.net-mvc-5