【发布时间】:2011-05-30 14:38:40
【问题描述】:
我有一个 MVC 3 视图,它显示可以按日期过滤的项目列表。
过滤器是一个文本框,它已被 jQueryUI 填充到日期选择器中。
查看:
<%= Html.TextBoxFor(model => model.ReportedDate, new { @class = "datepicker" })%>
脚本:
$(".datepicker").datepicker({
dateFormat: 'dd/mm/yy',
changeYear: true,
changeMonth: true
});
单击按钮后,我获取文本框的值并将其作为 GET 请求的查询字符串参数发送到我的控制器操作:
MyController/Search?reportedDate=30/05/2011
控制器动作:
public ActionResult Search(DateTime? reportedDate)
据此,我希望默认模型绑定器将 reportedDate 查询参数转换为可为空的 DateTime(在此上下文中为空,表示所有日期或无过滤器)。
然而事实并非如此。 reportedDate 始终为空。我可以深入了解Request.QueryString 并使用DateTime.TryParse 手动进行转换,这是我目前的工作,但我不明白为什么它首先会失败。
客户端和服务器之间的日期格式没有区别,还有其他数据类型(字符串和整数)的过滤参数(此处省略,但在实际代码中存在),它们可以毫无问题地处理。
关于 DateTime 麻烦的任何建议?
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-3