EDIT: I am able to pass some plain data if I use type: 'GET' in the ajax call and [HttpGET] in the Controller.
However, complex datatypes like my Summary class is still not working and everything is either 0 or NULL.
I have the following class:
public class Summary
    {
        public int Total { get; set; }
        public double Average { get; set; }
        public int Issues { get; set; }
        public int Fixed { get; set; }
        public double FixedPercentage { get; set; }
        public double TotalPercentage { get; set; }
        public List<Issues> IssuesList { get; set; }        
    }
public class Issues
{
       public string Name {get; set;}
       public int Code {get; set;}
}
And the following Action on my Controller:
[HttpGet]
public IActionResult GetSummary(Summary summaryBySource)
{
     Json(new
     {
         summary = "hi"
     });
}
Lastly, this is the ajax call I am using to return the object to the Controller:
$.ajax({
        type: 'GET',
        dataType: 'json',
        url: '/Summary/GetSummary/',
        data: JSON.stringify(summaryBySource),
        error: function (xhr) {
            alert("Wrong");
        },
        success: function (result) {
            alert("Yeah");
        },
        async: true,
        processData: true
    });
Once the ajax call gets called, it jumps into the controller function but all its properties are NULL. Why is that happening?
BTW: the variable summaryBySource is a global variable that is in the View at the moment that the ajax call is called and it contains the values that matches with the Summary object.
Also, I tried to do the same thing but instead of passing an object, just a dumb string and it also returns null...
Thanks!
EDIT: The content of summaryBySource is
It will be an Object type and...
Total: 0
Average: 0
Issues: 2
Fixed: 1
FixedPercentage: 50
TotalPercentage: 100
IssuesList: Array[1]
    0: Object
        Name: "Crash"
        Code: 1001
 
Aucun commentaire:
Enregistrer un commentaire