如果Controll API的变量不等于Null,则Ajax不返回

时间:2017-07-16 17:44:53

标签: c# jquery asp.net model-view-controller

如果输入变量(a)未设置为Null,则以下Ajax代码甚至不会触发我的操作。

Ajax代码:

var ab = "Chocolate Smoothies ya know?";

$("#customerSubmit").submit(function (e) {

    e.preventDefault();

    $.ajax({
        url: "/api/Booking/lander",
        method: "post",
        data: { a: ab }
    })
});

以下我的控制器代码:

[HttpPost]
public void lander(string a)
{
    System.Diagnostics.Debug.WriteLine(a);
}

当我没有将它设置为null时,收到的输入为空。

触发断点时的

屏幕截图:

enter image description here

我使用了类型/方法/等等。似乎没有什么工作

更新

我甚至尝试了以下但没有用:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

您只需要在端点中使用[FromBody]属性:

$.ajax({
    url: "/api/Booking/lander",
    method: "post",
    data: {a: ab}
})

public void lander([FromBody]string a)

参考:https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api