【发布时间】:2017-02-24 01:38:39
【问题描述】:
尝试通过 Typescript 服务将有效负载传递给 http.post
我的 .ts 代码:
saveEdits(body: Object): Observable<Animal[]> {
let bodyString = JSON.stringify(body);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post(this.UrlToEdit, body, options)
.map((res: Response) => res.json())
.catch((error: any) => console.log("Edited value did not been saved"));
}
提到
private UrlToEdit = '/Home/Edit';
虽然值取决于服务,但 C# 控制器似乎没有启动。这里是它的代码:
[HttpPost]
public async Task<Boolean> Edit([Bind(Include = "animalID,animalName,animalHabitat,animalClass")] Animal animal)
{
if (ModelState.IsValid)
{
db.Entry(animal).State = EntityState.Modified;
await db.SaveChangesAsync();
return true;
}
return false;
}
【问题讨论】:
-
你能确保数据出现在 Fiddler 中吗?你能在 Fiddler 和 Animal 类中显示有效载荷吗?
-
数据确实呈现给 Fiddler。虽然,类是
export class Animal { animalID: number; animalName: string; animalHabitat: string; animalClass: string; } -
能否将
[Bind(Include = "animalID,...,animalClass")]替换为[FromBody],然后重试? -
对 [FromBody] 感到困惑
标签: c# angularjs typescript