0
我有一个ASP.Net Core 2.0项目,我用作web api。客户端完成了Angular 4.当我将我的表单数据从角度服务发布到我的API时,服务器端的模型属性始终为空。我不确定我在这里做错了什么。我尝试过使用application/json
和application/x-www-form-urlencoded
的各种组合。我也尝试了[FromBody]
和[FromForm]
属性,并且在这两种情况下,我的模型中的属性均为null。模型绑定在POST上失败
我是否在我的文章中做了错误的角度方面?
我核实,我的JSON字符串被张贴(屏幕截图所示)包含了我预期的表单数据。尽管它在服务器上到达零。
这是我的角度服务
import { Injectable, OnInit } from '@angular/core';
import { Http, URLSearchParams, Headers, RequestOptions, Response } from '@angular/http';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/mergeMap';
import { CryptoData } from './cryptodata.interface';
import { Result } from './result.model';
@Injectable()
export class EncryptService implements OnInit {
private options: RequestOptions;
constructor(private http: Http) {
this.options = new RequestOptions({
headers: new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' })
})
}
ngOnInit() {
}
encrypt(data: CryptoData): Promise<Result> {
let json: any = JSON.stringify(data);
return this.http
.post('/api/encrypt', json, this.options)
.toPromise()
.then(response => response.json());
}
decrypt(data: CryptoData) {
}
}
这是我的控制器:
[Produces("application/json")]
[AllowAnonymous]
public class CryptoController : Controller
{
[HttpPost("~/api/Encrypt")]
public IActionResult Encrypt([FromForm] CryptoRequest request)
{
// Testing
return base.Ok(new Result(data: request.Content));
}
}
的假设是,该角的东西是错误的 - 我不知道。 –