Am trying to pass below data form my view to controller.
Edited
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)
{
...
}
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