如果输入变量(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时,收到的输入为空。
触发断点时的屏幕截图:
我使用过类型/方法/等等。似乎没什么用。
更新
我甚至尝试了以下但没有用:
答案 0 :(得分:0)
根据我使用Post方法的经验,最好使用一些类包装器,如:
public class StringInfo
{
public string Value {get; set; }
}
public void lander(StringInfo info)
并在你的javascript中
data: { value: ab }
答案 1 :(得分:0)
当您发布简单类型在C#上使用WebAPI时,它会自动将其绑定到Url,因此将控制器中的[FromBody]更改为[FromURI]
另外,您可以将其作为具有空变量名称
的复杂类型传递var ab = 'Chocolate Smoothies ya Know?';
$.ajax({
url:"/api/Booking/lander",
data: {'': ab}
});