2013-01-02 27 views
0

继不更新模型字段是代码提取物:的JQuery的DatePicker在MVC

@Html.TextBoxFor(m => m.CreatedSearchStartDate, 

      new { @Value=Model.CreatedSearchStartDate.Value.ToString("dd/MM/yyyy"), 

       @selectedDate =Model.CreatedSearchStartDate.Value.ToString("dd/MM/yyyy"), 

       @class="dateInput", @id="CreatedSearchStartDate" } 

      ) 

以下是相关的JQuery代码

$("#CreatedSearchStartDate").each(function() { 

    var a = $(this).datepicker(

     { 

      dateFormat: "dd/mm/yy", 

      defaultDate: new Date($(this).val()) 

     }) 

}); 

该视图表示日期选择器控制,它是运行良好。此外,文本框更新为基础值(我可以使用Firebug检查)。唯一的问题是模型中的底层字段没有更新。而在这个模型中还有一些其他的领域,它会得到适当的更新。

这可能是什么可能的原因?

+0

我们可以看到模型定义?表单属性中的文本框是什么?为什么你使用.each构造来只设置一个日期选择器。设置许多人就喜欢这样的dateInput类更有意义:$(“ dateInput”)每个(函数(){ –

回答

1

我有一种感觉,这是一个文化问题。我自己没有经历过这个问题,但我知道别人有。如果您的视图的“文化设置”与应用程序相比存在差异,则可能导致验证错误。此外,它听起来像你需要确保你正在使用表单提交文化正确应用文章。看看其他的帖子,看看有没有他们的帮助:

ASP.Net MVC model binding - how to change date format?

Custom DateTime model binder in Asp.net MVC

+0

感谢您的答复和有价值的提示 我进一步发现问题与日期格式。如果所选的日期是行按照美国格式化然后将其成功地被反映在模型中,否则在模型设置为空。 例如,如果用户选择“2013/05/01”它被绑定,并且如果选择了“ 31/01/2013" 它设置为null。 任何想法可能是什么原因? 在日期选择日期格式已设置为‘DD/MM/YY’ – Nirman

+0

确保您有[HttpPost]注释上当你的表单提交时被调用的控制器方法,如果仍然不起作用,请发布代码来自您的控制器。 –

+0

是的,它的存在..问题是,我是缺少在web.config中设置的文化。有一次,我建立了文化和UICulutre,它开始工作 – Nirman