c# – asp.net mvc控制器无法识别DateTime url参数?

我正在使用一些日期参数对Iframe网址进行编码:

var object = {
                profileID: self.profileID(),
                organisationID: self.organisationID(),
                startDate: self.startDate(), // 09/04/2013 
                endDate: self.endDate() // 17/04/2013 
            };
iFrame.src = "ExportReportAllMediaDetailsCsv/?" + $.param(object);

编码的网址:

http://dev.neptune.local/Report/ExportReportAllMediaDetailsCsv/?profileID=41&organisationID=2252&startDate=09%2F04%2F2013&endDate=17%2F04%2F2013

但是,被调用的方法有时无法识别传入的日期时间:

The parameters dictionary contains a null entry for parameter 'endDate' of non-nullable type 'System.DateTime'

这是方法签名:

[CustomAuthorize(Definitions.RoleAnalystManager, Definitions.RoleProjectManager)]
public ActionResult ExportReportAllMediaDetailsCsv(int profileID, int organisationID, DateTime startDate, DateTime endDate)

最佳答案 您使用的是英国格式的日期字符串.由于只有endDate不起作用,我的猜测是startDate被认为是9月4日.另一方面,因为一年中没有第17个月,所以endDate不能绑定到DateTime对象.

听起来你需要正确设置你的文化.尝试将以下内容添加到您的Web.Config,在< system.web>下:

<globalization requestEncoding="utf-8" responseEncoding="utf-8"
    culture="en-GB" />

有关全球化的更多信息,请参阅http://msdn.microsoft.com/en-us/library/c6zyy3s9(v=vs.100).aspx

点赞