ASP.NET MVC 5使用Jquery datepicker,不显示时间,保留文化

时间:2014-02-19 08:35:54

标签: jquery asp.net-mvc datepicker asp.net-mvc-5

在局部视图中,我执行以下操作:

@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绑定。除了有同样的文化问题。

怎么办?

1 个答案:

答案 0 :(得分:0)

添加如下格式:

dateFormat: 'mm/dd/yy'

这到web.config:

<globalization culture="en-US" uiCulture="en-US" />