I'm trying to pass form data to my controller method using jQuery Ajax, but I'm not sure how you do it, since my ViewModel is null when I use the debugger on the controller side.
My ViewModel:
public class PremisesViewModel { public string createPremisesErrorMessage { get; set; } public string updatePremisesErrorMessage { get; set; } public SelectList listOfCounties = Initialise.countiesSelectList; public Premise premises { get; set; } }
where room is an entity / table in my database.
The form contains fields in the Premises table.
In my javascript function, I do this:
var premisesViewModel = { Id: 0, PremisesDescription: $('#premises_PremisesDescription').val(), OrdnanceSurveyReference: $('#premises_OrdnanceSurveyReference').val(), PartRestrictedNotes: $('#premises_PartRestrictedNotes').val(), NatureOfPremises: $('#premises_NatureOfPremises').val(), AddressLine1: $('#premises_AddressLine1').val(), AddressLine2: $('#premises_AddressLine2').val(), Town: $('#premises_Town').val(), CountyId: $('#premises_CountyId').val(), Postcode: $('#premises_Postcode').val() } alert(form.serialize); $.ajax({ url: form.attr('action'), type: 'POST', dataType: "json", contentType: 'application/json', data: JSON.stringify(premisesViewModel), success: function (data) { alert('done'); } })
However, when I check the viewModel parameter in my method, it is null:
[HttpPost] public JsonResult Create(PremisesViewModel pvm) { return null; }
Any ideas on how to map this so that the viewmodel is properly bound. Thanks