【发布时间】:2015-11-28 06:38:27
【问题描述】:
我有点困惑 AngularJS 如何将数据发布到我的 WebAPI 控制器。通常,当我将 AngularJS 中的数据 POST 到 MVC 控制器时,我会这样做:
var data = { "value": "some string" };
$http.post('/api/products', { data
}).success(function () {...
但是,在 WebAPI 控制器中,字符串值总是返回为 null。
在将数据传递到 Web api 控制器时,我是否需要稍微不同地发布数据?
这是我的控制器中的方法:
[HttpPost]
public void Post([FromBody]string value)
{
.....
}
编辑 不确定这是否有帮助,但这是 Fiddler 的标题:
POST http://localhost:58167/api/products/ HTTP/1.1 主机: 本地主机:58167 连接:保持活动内容长度:11 接受: application/json, text/plain, / 来源:http://localhost:58167 用户代理:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,如 Gecko)Chrome/44.0.2403.157 Safari/537.36 内容类型: 应用程序/json;charset=UTF-8 引用者:http://localhost:58167/ Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.8
一些字符串
【问题讨论】:
-
@Prashant 是的,我已经阅读了那篇文章……包括其他一些文章。看来我做的一切都是正确的,但该值始终显示为空。如果我使用 [FormBody] 那么我不需要使用 Stringify,对吗?我
-
您是否在标题中将内容类型指定为 JSON
-
@Prashant 是的——我也试过了。
-
也许将您的 Web API 从接受字符串更改为接受模型对象,例如
public class Product { public string Value {get; set;} }
标签: asp.net angularjs asp.net-web-api