Ser*_*gio 11 javascript asp.net asp.net-mvc jquery
我有一个使用jquery日历来显示事件的站点.我注意到,当在IE(所有版本)中使用系统时,ASP.NET MVC将无法将日期时间绑定到发回正确事件的操作.
事件顺序如下.
在IE以外的每个浏览器中,开始和结束日期都是:
Mon, 10 Jan 2011 00:00:00 GMT
Run Code Online (Sandbox Code Playgroud)
当IE发布日期时,它通过as
Mon, 10 Jan 2011 00:00:00 UTC
Run Code Online (Sandbox Code Playgroud)
然后,ASP.NET MVC 2将无法自动将其绑定到action方法参数.
有没有理由发生这种情况?发布到服务器的代码如下:
data: function (start, end, callback) {
$.post('/tracker/GetTrackerEvents', { start: start.toUTCString(), end: end.toUTCString() }, function (result) { callback(result); });
},
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,我使用JavaScript Date()的.toISOString()函数解决了它(而不是做一个字符串替换).
DateTime并且DateTimeOffset无论broswer发送它(在我有限的IE,Firefox和Chrome测试中)都将正确处理.
所以,我把日期发送到控制器就像这样(这是我的JS对象):
var dateObject = new Date();
dateObject.toISOString()
Run Code Online (Sandbox Code Playgroud)
并且服务器可以像这样解析数据(.NET - 在控制器中):
DateTimeOffset timeInGMT = DateTime.Parse(dateString).ToUniversalTime(); //for the time in GMT
DateTime timeOnClient = DateTime.Parse(dateString); //for time as it was set on the client.
Run Code Online (Sandbox Code Playgroud)
尝试更换
start.toUTCString()
Run Code Online (Sandbox Code Playgroud)
和
start.toUTCString().replace('UTC','GMT')
Run Code Online (Sandbox Code Playgroud)
看看这是否不能解决您的问题:)
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |