96
rated 0 times
[
98]
[
2]
/ answers: 1 / hits: 17145
/ 7 Years ago, thu, march 2, 2017, 12:00:00
I'm trying to call my controller via ajax passing some complex data.
My controller's action method.
public ActionResult CalculatePremium(QuoteDetailsViewModel quoteDetails)
{
ViewBag.Message = Your application description page.;
return View();
}
Javascript code:
quoteDetails = {
StartDate: '10-10-2016',
Drivers: [{ Name: 'Test', Occupation: 'Test2',
DateOfBirth: '10-10-1985'}, { Name: 'Test2', Occupation: 'Test4',
DateOfBirth: '10-10-1945' }],
Claims: ['5-5-2010']
};
$.ajax({
type: GET,
url: '/Home/CalculatePremium',
contentType: application/json; charset=utf-8,
data: quoteDetails,
dataType: json,
success: function () { alert('Success'); },
error: function (xhr, status, error) { alert('Error:'); }
});
View model (don't worry about string being used for DateTime - it is just for testing)
public class QuoteDetailsViewModel
{
public string StartDate { get; set; }
public List<Driver> Drivers { get; set; }
public List<string> Claims { get; set; }
}
public class Driver
{
public string Name { get; set; }
public string Occupation { get; set; }
public string DateOfBirth { get; set; }
}
When I call action method the object is populated with the following:
{MotorInsuranceCalculator.Models.QuoteDetailsViewModel}
Claims: null
Drivers: Count = 2
StartDate: 10-10-2016
quoteDetails.Drivers
Count = 2
[0]: {MotorInsuranceCalculator.Models.Driver}
[1]: {MotorInsuranceCalculator.Models.Driver}
quoteDetails.Drivers[0]
{MotorInsuranceCalculator.Models.Driver}
DateOfBirth: null
Name: null
Occupation: null
quoteDetails.Drivers[1]
{MotorInsuranceCalculator.Models.Driver}
DateOfBirth: null
Name: null
Occupation: null
Any help to resolve this would be greatly appreciated.
More From » c#