![](/img/trans.png)
[英]How do I pass DateTime parameters from View to Controller in ASP.net MVC5?
[英]How to pass datetime from view to controller in asp.net MVC
我试图将以下数据从我的视图传递给控制器。
编辑
<script type="text/javascript">
var pathname = 'http://' + window.location.host;
var Student = [
{ Name: "Vijay", ID: 1, DOB: "2010-12-09T08:00:00.000Z" },
{ Name: "Anand", ID: 2, DOB: "2010-12-09T08:00:00.000Z" }
];
$.ajax({
url: pathname + "/Home/UpadetStu",
type: "POST",
dataType: "json",
data: JSON.stringify(Student),
contentType: "application/json; charset=utf-8",
success: function (result) { },
failure: function (r, e, s) { alert(e); }
});
</script>
[ObjectFilter(Param = "stuData", RootType = typeof(Stu[]))]
public JsonResult UpadetStu(Stu[] stuData)
{
return this.Json(new { success = true });
}
[DataContract]
public class Stu
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int ID { get; set; }
[DataMember]
public DateTime? DOB { get; set; }
}
但是在控制器中,对于名称和ID,DOB的默认日期时间变为空,我发现传递datetime时出现问题。 有没有更好的方法将datetime从视图传递到控制器? 我是否会错过任何解析?
问题是Thu Dec 9 13:30:00 UTC+0530 2010
无法解析为c#中的有效日期时间对象。 您可以通过简单地调用DateTime.Parse("Thu Dec 9 13:30:00 UTC+0530 2010")
来尝试它,它将失败。
我建议您不要从服务器返回该日期格式,而是最好返回看起来像2010-12-09T08:00:00.000Z
的ISO 8601格式。
您可以轻松地将长日期时间格式从javascript转换为ISO 8601,
new Date("Thu Dec 9 13:30:00 UTC+0530 2010").toJSON();
如果您使用的是JSON.NET库,则可以轻松控制日期时间的序列化方式。
更新:
<script type="text/javascript">
var Student = [
{ Name: "Vijay", ID: 1, DOB: "2010-12-09T08:00:00.000Z" },
{ Name: "Anand", ID: 2, DOB: "2010-12-09T08:00:00.000Z" }
];
$.ajax({
url: "/Home/Index",
type: "POST",
dataType: "json",
data: JSON.stringify(Student),
contentType: "application/json; charset=utf-8",
success: function (result) { },
failure: function (r, e, s) { alert(e); }
});
</script>
[HttpPost]
public ActionResult Index(Student[] students)
{
...
}
如果控制器中的studentData对象为null,则JSON.stringify(Student)生成的对象不是正确的JSON或无法解析为Stu对象的对象。
验证您的JS Student对象是否正确,然后验证您使用JSON.stringify生成的JSON
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.