asp.net http GET通过AJAX发送数据

时间:2018-02-07 20:28:12

标签: jquery asp.net ajax controller

我试图将数据从AJAX GET发送到我的控制器,但数据始终为空。

我的控制器:

    [Route("api/sendingData")]
public class myController : ApiController
{
    [EnableCors(origins: "*", headers: "*", methods: "*")]
    [HttpGet]
    public bool Get(dataModel data)
    {
        myFunc result = new myFunc(data);

        return result.success;
    }
}

我的dataModel:

    public class dataModel
{
    public int id { get; set; }
    public List<int> arrValues { get; set; } = null;
}

我通过html ajax调用控制器:

    data = {
    id: 1,
    arrValues : [40, 43]
};
$.ajax(
    {
        url: "api/sendingData",
        type: "GET",
        dataType: 'jsonp',
        data: data,
        success: function (result) {
            console.debug(result);
            alert(result);
        },
        error: function (xhr, status, p3, p4) {
            console.debug(xhr);
            var err = "Error " + " " + status + " " + p3;
            if (xhr.responseText && xhr.responseText[0] == "{")
                err = JSON.parse(xhr.responseText).message;
            alert(err);
        }
    });

当我调试控制器时,变量数据为空。为什么不从AJAX请求中获取数据?

由于

2 个答案:

答案 0 :(得分:0)

Model不需要在dataModel类上赋值null。

struct MainDataFamily: Codable {

    let families: [Family]

    enum CodingKeys: String, CodingKey {

        case families = "families"
    }
}

将控制器更改为接受基本类型(如int和string),因为获取请求然后使用查询字符串发送数据以从ajax获取请求。

public class dataModel
{
    public int id { get; set; }
    public List<int> arrValues { get; set; } 
}

答案 1 :(得分:0)

尝试类似:&#34; POST&#34;。 当您输入类型:&#34; GET&#34;时,您的日期会进入您的网址,如下所示:

api/sendingData?id=1&arrValues=value