Angular 8发送的.Net Core POST模型接收默认值
从Angular 8/TS发送基本类型和具有基本类型的对象没有问题。但对于更复杂的模型,我只收到默认值,我不知道是否遗漏了什么 这是TS和模特的电话,Angular和C 我想知道这种绑定(模型数组)是必须手动完成还是我做错了什么 TS 控制器Angular 8发送的.Net Core POST模型接收默认值,angular,typescript,.net-core,Angular,Typescript,.net Core,从Angular 8/TS发送基本类型和具有基本类型的对象没有问题。但对于更复杂的模型,我只收到默认值,我不知道是否遗漏了什么 这是TS和模特的电话,Angular和C 我想知道这种绑定(模型数组)是必须手动完成还是我做错了什么 TS 控制器 非常感谢您需要将FromBody模型绑定属性添加到控制器方法中: public int AddWorkflow[FromBody]WorkflowDTO WorkflowDTO 此外,由于属性类型的原因,它可能无法映射TS类。我从未尝试过这样键入数组,但这
非常感谢您需要将FromBody模型绑定属性添加到控制器方法中: public int AddWorkflow[FromBody]WorkflowDTO WorkflowDTO 此外,由于属性类型的原因,它可能无法映射TS类。我从未尝试过这样键入数组,但这可能会导致问题。我确信下面的语法是有效的 stepItemsToDelete:步骤[]
让我知道进展如何。您好,谢谢您的评论。不幸的是,将数组更改为[]is TS不起作用。此外,我还尝试从后端删除列表并使用[],但运气不佳。[fromBody]是我有时添加或删除的东西,以测试它是否有效。在POST中,我还尝试发送workflowDTO和{workflowDTO},有时随机发送,试图找到解决方案。我在问题中添加了一个屏幕截图,其中显示了后端接收到的值。ModelState对象没有提供有用的信息,因为它是有效的。您得到的响应是什么?因为您提到您的modelState是有效的,所以您的响应的状态代码为200,并且每次返回1。对吗?您是否尝试过在Angular代码中记录请求主体?只是为了确保API得到我们认为它得到的数据。是的,一切正常,我收到1:我添加了一个控制台日志屏幕截图。
return this.http.post<void>(environment.apiBaseUrl + 'api/WorkFlow/AddWorkflow', workflowDTO);
export class WorkflowDTO {
id: number;
name: string;
description: string;
stepItemsToDelete: Array<Step>;
stepItemsToAdd: Array<Step>;
stepOrder: Array<StepOrder>;
constructor() {
this.id = 0;
this.name = '';
this.description = '';
this.stepItemsToAdd = [];
this.stepItemsToDelete = [];
this.stepOrder = [];
}
}
export class StepOrder {
id: number;
order: number;
}
export class Step {
id: number;
workflowId: number;
stepTypeId: number;
text: string;
path: string;
stepOrder: number;
stepName: string;
imageFile: string;
}
public int AddWorkflow(WorkflowDTO workflowDTO)
{
if(!ModelState.IsValid) //it is always true
{
return 0;
}
return 1;
}
public class WorkflowDTO
{
public int id { get; set; }
public string name { get; set; }
public string description { get; set; }
public List<Step> stepItemsToDelete { get; set; }
public List<Step> stepItemsToAdd { get; set; }
public List<StepOrder> stepOrder { get; set; }
}
public class Step
{
public int id { get; set; }
public int workflowId { get; set; }
public int stepTypeId { get; set; }
public int stepOrder { get; set; }
public string text { get; set; }
public string path { get; set; }
public string stepName { get; set; }
public string imageFile { get; set; }
}
public class StepOrder
{
public int id { get; set; }
public int order { get; set; }
}