在局部视图中,我执行以下操作:
@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绑定。除了有同样的文化问题。
怎么办?
答案 0 :(得分:0)
添加如下格式:
dateFormat: 'mm/dd/yy'
这到web.config:
<globalization culture="en-US" uiCulture="en-US" />