javascript – 如何将datetime值附加到formdata并在控制器中接收它
作者:互联网
我想知道如何通过formdata传递datetime值
在控制器中检索它并将其转换为控制器中的DateTime
我试过如下:
var formdata=new FormData();
fromDate = $('.from_date').datepicker('getUTCDate');
toDate = $('.to_date').datepicker('getUTCDate');
formdata.append("start", new Date(fromDate));
formdata.append("end", new Date(toDate));
并在$.ajax我设置数据:formdata
在我的控制器中,我收到如下:
DateTime frmDate = Convert.ToDateTime(Request.Form["start"]).Date;
DateTime toDate = Convert.ToDateTime(Request.Form["end"]).Date;
但是在这里我尝试转换为datetime时遇到System.FormatException,当我一直关注Request.Form [“start”]时,该值将是“Fri Mar 30 2015 05:30:00 GMT 0530(Indian Standard Time) )“但它从请求中检索时将其视为字符串.
是否可以通过Request传递datetime类型?
解决方法:
您获得FormatException,因为日期字符串未在.NET日期解析器的已识别模式中格式化.如果我们可以更具体地说明javascript中的格式,我们可以满足.NET解析器.
var datestr = (new Date(fromDate)).toUTCString();
formdata.append("start", datestr);
这些中的任何一个都会给我们一个可接受的格式
> toUTCString()
> toISOString()
现在我们在服务器端代码中解析字符串
DateTime fromDate = Convert.ToDateTime(Request.Form["start"]).Date;
根据计算机的区域性设置,您可能需要使用DateTime.ParseExact()而不是Convert.ToDateTime().
是否可以通过Request传递datetime类型?
沿着从javascript到控制器操作的管道,无论如何都将转换为字符串或整数.我们可以返回DateTime的tick(milisecond)表示,但是你需要将它转换为.NET ticks,它使用不同的纪元和纳秒单位.
只需坚持标准格式的字符串.
有关解析日期格式here的更多信息.
标签:javascript,datetime,asp-net-mvc-4,form-data,c-2 来源: https://codeday.me/bug/20191008/1870685.html