提问人:Asbah Qadeer 提问时间:7/17/2017 更新时间:7/17/2017 访问量:54
AJAX 未向 Web API 控制器发送数据
AJAX Not Sending Data to Web API Controller
问:
如果输入变量 (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。
触发断点时的屏幕截图:
我使用了类型/方法/等。似乎没有任何效果
更新:
我什至尝试了以下方法,但没有用:
答:
0赞
el vis
7/17/2017
#1
根据我的经验,当您使用 Post 方法时,最好使用一些类包装器,例如:
public class StringInfo
{
public string Value {get; set; }
}
public void lander(StringInfo info)
在你的 javascript 中
data: { value: ab }
评论
0赞
Asbah Qadeer
7/17/2017
它没有用......我复制了你的控制器和 Ajax 代码。没有效果
0赞
Asbah Qadeer
7/17/2017
此外,我得到了这个:无法加载资源:服务器响应状态为 405(不允许方法)
-1赞
codegidi
7/17/2017
#2
在 C# 上使用 WebAPI 发布简单类型时,它会自动将其绑定到 Url,因此将控制器中的 [FromBody] 更改为 [FromURI]
或者,您可以将其作为变量名称为空的复杂类型传递
var ab = 'Chocolate Smoothies ya Know?';
$.ajax({
url:"/api/Booking/lander",
data: {'': ab}
});
评论
0赞
Asbah Qadeer
7/17/2017
无法加载资源:服务器响应状态为 405(不允许使用方法)
评论