【发布时间】:2021-11-07 21:21:30
【问题描述】:
我有一个 aspnet 核心 web api 和一个 angular 客户端。当我想在 web api 中调用方法时,我从客户端发送一个对象,api 将其作为方法参数接收。但在这种情况下,客户端总是在控制台中记录错误“HttpErrorResponse {headers: HttpHeaders, status: 400, statusText: 'OK ...}”。 客户端发送的obj类是:
export class TaskProgress{
id:string="";
taskId:string="";
discription:string="";
workingHours:number=0;
status:string="";
}
客户端调用:
createTaskProgress(dto:TaskProgress):Observable<TaskProgress>{
return this.http.post<TaskProgress>(`${environment.apiUrl}/TaskProgress/Create`,dto);
}
ViewModel 作为 api 中的参数:
public class TaskProgressDto
{
public long Id { get; set; }
public long TaskId { get; set; }
public string Discription { get; set; }
public double WorkingHours { get; set; }
public string Status { get; set; }//committed staged unstaged
}
api控制器中的方法:
[HttpPost("Create")]
public async Task<IActionResult> Add(TaskProgressDto dto)
{
}
我找到了一个解决方案,可以将替代类 TaskProgressDto 转换为如下动态类型:
[HttpPost("Create")]
public async Task<IActionResult> Add(dynamic dto)
{
}
但是我不知道为什么,我可以只使用明确的类TaskProgressDto吗?
谢谢
【问题讨论】: