Reputation: 2210
I Know this is a repeated question but I can't find out what I'm doing wrong. Following is my code
My Model
public class DivisionDetails
{
public int DivisionId { get; set; }
public string DivisionName { get; set; }
public DateTime? UpdatedOn { get; set; }
public string FormattedUpdatedOn
{
get
{
return GetFormattedDate();
}
}
private string GetFormattedDate()
{
return UpdatedOn.HasValue ? UpdatedOn.Value.ToString("MM-dd-yyyy") : "";
}
}
my jQuery
var divisions=[];
var item = {};
item.DivisionName ="polo"
item.DivisionId = 1;
item.UpdatedOn = null;
divisions.push(item);
var itemTwo = {};
item.DivisionName ="polo2"
item.DivisionId = 2;
item.UpdatedOn = null;
divisions.push(itemTwo);
var items = JSON.stringify({ "divisions":divisions });
success= function(data){
alert(data);
}
$.ajax({
url: "url",
type: "POST",
cache: false,
data:items,
contentType: 'application/json; charset=utf-8',
dataType: "json",
success: success
});
my controller
public IActionResult Save(List<DivisionDetails> divisions)
{
var result = _divisionService.Save(divisions);
return Json(result);
}
When the call hit the controller I'm getting an empty list. Please point me to the right direction
Upvotes: 1
Views: 4131
Reputation: 3502
You should use [FromBody]
to get list object in controller side.
Also you fill item
object twice therefore itemTwo
object becomes null.
var divisions=[];
var item = {};
item.DivisionName ="polo"
item.DivisionId = 1;
item.UpdatedOn = null;
divisions.push(item);
var itemTwo = {};
itemTwo.DivisionName ="polo2"
itemTwo.DivisionId = 2;
itemTwo.UpdatedOn = null;
divisions.push(itemTwo);
public IActionResult Save([FromBody]List<DivisionDetails> divisions)
{
var result = _divisionService.Save(divisions);
return Json(result);
}
Upvotes: 4