如何将序列化表单发送到webapi方法

时间:2015-11-19 08:42:51

标签: ajax asp.net-mvc asp.net-web-api

我试图将我的ajax($ .post)发送到webApi。 ajax请求运行成功但是当我向web api表单集合中的方法发送数据时获取null然后我的方法返回“false” 请帮帮我 我的WebApi方法

foo

我的Ajax功能

[System.Web.Http.HttpPost]
    public string AddRecord([FromBody]FormCollection form)
    {
        try
        {
            PersonBLL personbll = new PersonBLL();
            var person = new tbl_persons();
            person.firstname = form["txt_namePartial"];
            person.lastname = form["txt_lastnamePartial"];
            person.age = byte.Parse(form["txt_agePartial"]);
            var result = personbll.AddRecord(person);
            return result;
        }
        catch (Exception)
        {
            return "false";
        }
    }

}

2 个答案:

答案 0 :(得分:0)

我经常使用它:

var form = $("#body").find("form").serialize();
$.ajax({
    type: 'POST'
    url: "/api/Person/AddRecord",
    data: form,
    dataType: 'json',
    success: function (data) {
        // Do something
    },
    error: function (data) {
        // Do something
    }
});

试一试,因为我从未使用过 FormCollection 对象类型,只是一个模型类。

答案 1 :(得分:-1)

This should be:
url=$("#form").serialize();
function AddRecordWithFormCollection(url, callback) {

$.post("/api/Person/AddRecord",url , function (data, status) {
    if (status == "success") {
        hidePreloader();
        unloadDiv("div_operation");
        BindTable();

       //AddRowTable(data, obj.name, obj.lastname, obj.age);
        return callback(data);

    } else {
        alert("Error in Method [AddRecord]");
        hidePreloader();

    }
});

}