ajax提交后台自动反序列化成对象
下面是ajax提交的方法,主要用到了$form.serializeArray()将表单序列化成json对象,然后用each处理一下,代码如下:
var $form = $('<form></form>'); $form.append($("#dialog-form").clone()); var jsonObj = $form.serializeArray(); var jsonStr = "{"; $.each(jsonObj, function (i, field) { if (i == 0) { jsonStr += '"' + field.name + '":"' + field.value + '" '; } else { jsonStr += ', "' + field.name + '":"' + field.value + '" '; } }); jsonStr += " }" $.ajax({ type: 'POST', url: 'ajaxtools/handler.ashx?action=save_changed_store', data: { data: jsonStr }, success: function (result) { $("#dialog-form").dialog("close"); storegrid_update.reload(); }, error: function (error) { $.jBox.tip(result, 'error'); } });
后台主要用到了 json.net ,注意表单的name命名必须要和对象的属性一致才能反序列化成对象,代码如下:
var json = context.Request.Form["data"]; var store = JsonConvert.DeserializeObject<User>(json);