我正在使用前端6和后端的.Net开发一个小的待办事项应用程序。标题几乎描述了问题。首先,看一下代码,我试图使用Angular服务进行HTTP Post,并在.Net后端控制的.cs中使用httpPost函数来接收它。
TodoSerice.ts:
addTodoItem(todoNew: todoItem): Observable<any[] | todoItem> {
return this.http.post<todoItem>(this.baseUrl + 'api/ToDoData/Addtodos', todoNew)
.pipe(
tap(todoLists => console.log("Service inside: ", JSON.stringify(todoLists))),
catchError(this.handleError('addTodoItem', []))
);
}
ToDoController.cs:
public IActionResult Addtodos(todoTasks addItem)
{
Console.WriteLine("\n\n---task in sqlite: ", Json(addItem.task));
//using(var todoApp = new userauth())
/*{
if(addItem != null){
//var todos = todoApp.tasks.Add(addItem.ToList(todoApp.tasks));
//todoApp.SaveChanges();
}
return Json(todoApp.tasks.ToList());
}*/
return Json(addItem);
}
这是我尝试添加内容时得到的JSON响应:
{
"todoTasksId":0,
"userName":null,
"task":null,
"startDate":0,
"endDate":0,
"achieved":false,
"deleted":false
}
.cs中的TodoTasks类:
public class todoTasks
{
public int todoTasksId { get; set; }
public string userName { get; set; }
public string task { get; set; }
public int startDate { get; set; }
public int endDate { get; set; }
public bool achieved { get; set; }
public bool deleted { get; set; }
}
.ts(角)中的TodoItem接口:
export interface todoItem{
todoTasksId: number;
userName: String;
task: string;
startDate: number;
endDate: number;
achieved: boolean;
deleted: boolean;
}
我已注释掉将项目添加到数据库中的部分,因为我首先希望至少能够打印它。 由于POST,我收到的所有信息都是应用程序两端的空值。另外,我尝试使用Get调用,只是将数据从数据库中提取出来,而且效果很好。