1

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

2
  • @hasan tried that not working Commented Aug 20, 2018 at 15:08
  • I have updated my answer and I missed the point that you dont use [FromBody] in controller method Commented Aug 20, 2018 at 15:25

1 Answer 1

4

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);
}
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks a lot man [FromBody] was the missing piece. You just made my day

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.