我正在尝试用ajax调用替换表单提交。该动作需要formcollection,我不想创建一个新的Model。所以我需要通过ajax调用来传递整个表单(就像表单提交一样)。我尝试序列化并使用Json,但formcollection为空。这是我的动作签名:
public ActionResult CompleteRegisteration(FormCollection formCollection)
这是我的提交按钮,单击:
var form = $("#onlineform").serialize(); $.ajax({ url: "/Register/CompleteRegisteration", datatype: 'json', data: JSON.stringify(form), contentType: "application/json; charset=utf-8", success: function (data) { if (data.result == "Error") { alert(data.message); } } });
现在如何将数据传递到formcollection中?
由于FormCollection存在许多键值对,因此JSON对于其表示而言是不合适的数据格式。您应该只使用序列化的表单字符串:
FormCollection
var form = $("#onlineform").serialize(); $.ajax({ type: 'POST', url: "/Register/CompleteRegisteration", data: form, dataType: 'json', success: function (data) { if (data.result == "Error") { alert(data.message); } } });
关键更改: