繁体   English   中英

如何在asp.net MVC中将datetime从视图传递给控制器

[英]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.000ZISO 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM