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

Ajax not return if Controll API's variable doesn't equal Null

提问人:Asbah Qadeer 提问时间:7/17/2017 最后编辑:Asbah Qadeer 更新时间:7/17/2017 访问量:32

问:

如果输入变量 (a) 未设置为 Null,以下 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 时,收到的输入为 null。

触发断点时的屏幕截图:

enter image description here

我使用了类型/方法/等。似乎没有任何效果

更新:

我什至尝试了以下方法,但没有用:

enter image description here

enter image description here

C# jQuery asp.net model-view-controller

评论

0赞 Bob Dust 7/17/2017
这只是您的模型绑定的问题:您从客户端发送,但您将其绑定了 .例如,您应该定义一个模型类,其中包含一个属性,然后更改方法以用作参数。{a: ab}(string a)Customerpublic string a {get;set;}landerCustomer

答:

0赞 hardkoded 7/17/2017 #1

您只需要在 Endpoint 中使用该属性:[FromBody]

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

public void lander([FromBody]string a)

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

评论

0赞 hardkoded 7/17/2017
本地测试并更改示例,需要发送json对象