JQuery DatePicker没有在MVC2中获取默认格式

时间:2010-10-05 10:49:27

标签: asp.net-mvc-2 jquery-ui-datepicker

我正在使用MVC2并且包含了Jquery DateTime选择器。 出于某种原因,当页面加载时它没有使用默认格式设置。

模型传入日期,我将格式设置为'dd / mm / yyyy',因为我不想显示时间。 datepicker附加到的html.editor以标准'mm / dd / yyyy hh:mm:ss'格式显示,因此如果模型值如果说'2010年10月15日',验证将启动“无效日期” ,因为标准格式抱怨没有“第15个”月。

DatePicker的代码是......

<%= Html.TextBox("", (Model.HasValue ? Model.Value.Date.ToString("dd/mm/yyyy") :  
DateTime.Today.ToString("dd/mm/yyyy") ), new { @class = "date" }) %>

<script language="javascript" type="text/javascript">
    $(document).ready(function() {
        $("#datepicker").datepicker(
        {
            dateFormat: 'dd/mm/yy',
            defaultDate: new Date(),
            minDate: new Date()

        });
    });
</script>

代码调用Datepicker ...

<div>
    <%=Html.LabelFor(Model => Model.StartDate)%>
    <%=Html.EditorFor(Model => Model.StartDate, new { @class = "date" }) %>
    <%=Html.ValidationMessageFor(Model => Model.StartDate, "*")%>
</div>

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您是否正确设置了textBox的ID,我可以看到您有一个类“date”但不是id。

您可能还需要Google

上提供的日期选择器的本地化文件

我仍然无法在你的javascript中看到选择器:

$("#datepicker")

与您的文本框相关联。选择器不应该

$('.date')

也许我错过了什么。

答案 1 :(得分:0)

似乎问题实际上是HTML.TextBox而不是实际的JQuery ......

这条线似乎是问题,

<%= Html.TextBox("", (Model.HasValue ? Model.Value.Date.ToString("dd/MMM/yyyy") :
DateTime.Today.ToString("dd/MMM/yyyy")), new { @class = "date" })%>

我按照以下方式划分了这条线,以检查不同的元素是否正常工作,它们是......

<div><%=  Model.HasValue %></div>
<div><%=  Model.Value.Date.ToString( "dd/MM/yyyy" )  %></div>
<div><%=  DateTime.Today.ToString("dd/MM/yyyy")%></div>

所以,简单地说 - 模板中的这一行导致日期格式被忽略......任何建议?

<div><%= Html.TextBox("", Model.Value.Date.ToString("dd/MM/yyyy"))%></div>