我想知道如何通过 formdata 传递日期时间值和 在 Controller 中检索它并在 Controller 中将其转换为 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
我正在设置 data:formdata
在我的 Controller 中,我收到如下信息:
DateTime frmDate = Convert.ToDateTime(Request.Form["start"]).Date;
DateTime toDate = Convert.ToDateTime(Request.Form["end"]).Date;
但在这里我得到一个 System.FormatException
在尝试 Convert
到日期时间以及我何时监视Request.Form["start"]
那么该值将为 "Fri Mar 30 2015 05:30:00 GMT+0530 (Indian Standard Time)"
但它在从请求中检索时将其视为字符串。
是否可以通过Request
传递日期时间类型? ?
最佳答案
您收到 FormatException,因为日期字符串的格式不是 .NET 日期解析器可识别的模式。如果我们可以更具体地了解 javascript 中的格式,我们就可以满足 .NET 解析器的要求。
var datestr = (new Date(fromDate)).toUTCString();
formdata.append("start", datestr);
这些都会给我们一个可接受的格式
现在我们在您的服务器端代码中解析字符串
DateTime fromDate = Convert.ToDateTime(Request.Form["start"]).Date;
根据您机器的文化设置,您可能需要使用 DateTime.ParseExact()
而不是 Convert.ToDateTime()
。
是否可以通过请求传递日期时间类型?
沿着从 javascript 到您的 Controller 操作的管道,无论如何这将被转换为字符串或整数。我们可以返回 DateTime 的刻度(毫秒)表示,但随后您需要将其转换为使用不同纪元和纳秒单位的 .NET 刻度。
只使用标准格式的字符串。
更多关于解析日期格式的信息 here .
关于javascript - 如何将日期时间值附加到表单数据并在 Controller 中接收它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29287311/