How to pass datetime from view to controller in asp.net MVC

前端 未结 2 1451
南方客
南方客 2021-01-12 15:16

Am trying to pass below data form my view to controller.

Edited



        
相关标签:
2条回答
  • 2021-01-12 15:51

    The problem is Thu Dec 9 13:30:00 UTC+0530 2010 can't be parsed into a valid datetime object in c#. You can try that by simply calling DateTime.Parse("Thu Dec 9 13:30:00 UTC+0530 2010") it will fail.

    I would suggest that instead of returning that date format from the server you can better return the ISO 8601 format that looks like 2010-12-09T08:00:00.000Z.

    You can easily convert the long datetime format into ISO 8601 from javascript by,

    new Date("Thu Dec 9 13:30:00 UTC+0530 2010").toJSON();
    

    If you are using JSON.NET library you can easily control the way in which the datetimes have to be serialized.

    UPDATE:

    <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)
    {
      ...
    }
    
    0 讨论(0)
  • 2021-01-12 16:08

    If your studentData object in your controller is null, the JSON.stringify(Student) is producing an object that is not proper JSON or an object that can not be parsed to your Stu object.

    Verify that your JS Student object is correct, then verify the JSON you produce doing JSON.stringify

    0 讨论(0)
提交回复
热议问题