我正在尝试使用JQuery Ajax将表单的数据传递到我的控制器方法,但是由于在Controller Side上使用调试器时ViewModel为null,因此我不确定如何执行此操作。
我的ViewModel是:
public class PremisesViewModel { public string createPremisesErrorMessage { get; set; } public string updatePremisesErrorMessage { get; set; } public SelectList listOfCounties = Initialise.countiesSelectList; public Premise premises { get; set; } }
前提是我数据库中的实体/表。
该表单包含“前提”表中的字段。
在我的javascript函数中,我这样做:
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'); } })
但是,当我在方法中检查viewModel参数时,它为null:
[HttpPost] public JsonResult Create(PremisesViewModel pvm) { return null; }
关于如何映射此视图以便正确绑定视图模型的任何想法。谢谢
您的JSON格式与模型类完全相同。
当前示例
你的JSON喜欢
var premisesViewModel = { createPremisesErrorMessage : $('#premises_PremisesDescription').val(), updatePremisesErrorMessage: $('#premises_OrdnanceSurveyReference').val(), premises : {Define more properties here as per your Premise structure} }