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);
原文地址:https://www.cnblogs.com/ShenJH/p/3788669.html