这个论坛上已经有很多关于这个的问题。我已经阅读了它们,但我无法解决我的问题,所以我会在这里再次尝试提问。
我正在构建一个 Angular + ASP Core 应用程序。我已经在其他请求上成功使用了 FromBody,但由于某种原因,这个特定的请求不起作用。
这是我的模型类:
export interface CreateEventModel {
name: string;
description: string;
categoryId: number;
typeId: number;
price: number;
startDate: Date;
endDate: Date;
imageContent: Blob;
imageMimeType: string;
}
这是我发送到服务器的方式:
plan() {
// ...
this.net.post('Event/Create', this.model).subscribe((res: Response | any) => {
if (res.status == 200 || res.isOk == true) {
this.toasterService.pop('success', 'Sucess', "IS NOT NULL!");
}
}, err => { // Show error });
}
这是我在请求中的“.net.post”服务,以防您想知道:
post<T>(url: string, data: any): Observable<T> {
return this.basePut<T>(url, data);
}
// Does header, with JWT
private basePut<T>(url: string, data: any): Observable<T> {
let options = this.doHeaders();
return this.doSub(this.http.post(this.doUrl(url), data, options));
}
private doSub<T>(obs: Observable<Response>) {
var ob1: Observable<T> = obs.map(this.extractData)
.catch(this.handleError);
return ob1;
}
这是我的 JSON 输出:
{
"imageContent": {},
"imageMimeType": "image/jpeg",
"name": "MyTitle",
"typeId": 3,
"categoryId": 3,
"description": "My Description",
"price": 0,
"startDate": "2018-08-10T15:55:00.000Z",
"endDate": "2018-09-26T15:55:00.000Z"
}
这是我的控制器方法:
[HttpPost, Authorize(Roles = "Admin,Planner")]
public IActionResult Create([FromBody]CreateEventModel model)
{
// Do stuff, but 'model' is always null
}
最后,我的 C# 模型
public class CreateEventModel: ICreateEventModel
{
public string Name { get; set; }
public string Description { get; set; }
public int CategoryId { get; set; }
public int TypeId { get; set; }
public decimal? Price { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public byte[] ImageContent { get; set; }
public string ImageMimeType { get; set; }
}
我不确定有什么问题。任何帮助将不胜感激。