编程语言
首页 > 编程语言> > javascript – 如何将datetime值附加到formdata并在控制器中接收它

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