这有点奇怪……
在我的表单上,我有两个按钮(都是<input type="button" />
)。按钮 1 (B1) 有一个onclick="update()"
where 调用 Ajax 并填充了 Data 参数。第二个按钮 (B2) 使用老式提交。顺便说一句,两个按钮调用相同的控制器/动作。@Html.EditorFor(x => x.StartDate)
按钮用于从字段(即 jquery datepicker)发回日期。
因此,为了说明,假设 StartDate = "30/09/2012" (dd/mm/yy)。
如果我单击 B1,则会调用 Ajax,并且所有数据都正确地通过 data 参数传递。此参数是来自 $("#form").serializeArray() 的 json。此调用跳过活页夹并直接调用指定的控制器/动作就像一个魅力。我的 StartDate 属性带有正确的日期。
但是,如果我单击 B2,默认行为会构建一个查询字符串,我的应用程序会崩溃。我构建了一个自定义日期活页夹来拦截和检查正在发生的事情,我注意到日期字符串是“2012 年 9 月 30 日”,并试图转换为使用 dd/mm 的我的文化 (pt-BR)。
再进一步,我发现问题出在我的提交事件上,因为它正在构建一个奇怪的查询字符串:
//../Action?StartDate=09%2F30%2F2011%2000%3A00%3A00
还有一件事:Datepicker、webconfig 和客户端浏览器都配置为相同的文化。
现在,我应该如何进行呢?我可以概括所有提交的日期将作为 mm/dd/yy 到达活页夹并强制我的自定义日期活页夹来管理它,还是我做错了什么而忘记配置某些东西?
谢谢!