javascript - 如何将日期时间值附加到表单数据并在 Controller 中接收它

标签 javascript c# asp.net-mvc-4 datetime form-data

我想知道如何通过 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/

相关文章:

javascript - 音频加载后运行函数

asp.net-mvc-4 - 在 MVC 4 中创建下拉列表的最佳方法是什么?

javascript - 在 JavaScript 中生成 RSA key 对

javascript - 按值从数组中删除对象

c# - 如何将两个不同的文本框放入同一级别?

c# - ListView [VirtualMode] 更改选定索引

c# - 检查 MVC 模型返回字段中的空值

asp.net - 如果在 ASP.NET MVC4 中使用捆绑和缩小,如何创建 list

asp.net-mvc - 如何处理从 ASP MVC 版本 4.0.0.0 到 4.0.0.1 的转换

javascript - 如何使用 Mongoose.js 3.8.20 和 MongoDB 2.6.5 对文档进行排序?