我正在启动从 Angular2 到 ASP.NET 5 Controller 操作的发布请求。 Angular 正在正确发布数据并命中 Controller 操作,但它没有映射到 Controller 操作中定义的参数,参数为 null
。同时通过 Request
检查对象 Request.Form
具有正确的文本数据但未绑定(bind)到模型。
Angular
let body = JSON.stringify({ firstName: 'Ali' });
let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
this.http.post(this.url, body, { headers: headers })
.subscribe(
(data) => {
console.log('Response received');
console.log(data);
},
(err) => { console.log('Error'); },
() => console.log('Authentication Complete')
);
ASP.NET
[HttpPost]
public IActionResult DemoAction(string firstName)
{
var req = Request;
return null;
}
Request.Form 的数据格式如 {\"firstName\":\"Ali\"}
但参数 firstName
为 null
最佳答案
您尝试使用内容类型 url 编码形式发送 JSON 内容(使用 JSON.stringify 方法创建)。
您应该尝试使用 application/json 之一:
let body = JSON.stringify({ firstName: 'Ali' });
let headers = new Headers({ 'Content-Type': 'application/json' });
this.http.post(this.url, body, { headers: headers })
编辑
如果您想提供表单内容,您可以利用 URLSearchParams
类:
var params = new URLSearchParams();
params.set('firstName', 'Ali');
let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
this.http.post(this.url, params.toString(), { headers: headers })
关于asp.net-mvc - Angular2 Http 发布请求未绑定(bind)到 ASP.NET 5 Controller 的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35432527/