设置是Angular 5和.net核心Web。在控制器中,当尝试绑定到复杂对象时,模型绑定总是导致null。
下面提供了代码。
此示例改编自另一个SO answer。但这对我不起作用。
控制器:
[Route("demopost1")]
[HttpPost]
public async Task < IntResultEntity > DemoPostList1([FromBody]DemoPostViewModel payload)
{
return await Task.FromResult(new IntResultEntity { Result = 0 });
}型号:
public class DemoPostModel {
public string RelationType { get; set; }
public int Weight { get; set; }
}
public class DemoPostViewModel {
public IList<DemoPostModel> SubUnits { get; set; }
}客户端:
export class DemoPostComponent implements OnInit {
constructor(private demoPostSvc: DemoPostService,
private fb: FormBuilder) { }
demoData: any[]
demoPostForm: FormGroup
submitDemoPost1(form: FormGroup) {
let formModel = form.value;
const payload = {
'subUnits': [
formModel.demoFormArray.map(element => ({
'relationType': element.relationType,
'weight': element.weight
}))
]
};
this.demoPostSvc.demoPost1(payload)
.subscribe(data => {
console.log("Post success.");
}, error => {
console.log("Post failed.");
});
}
ngOnInit() {
this.demoData = [
{ 'relationType': 1, 'weight': 2 },
{ 'relationType': 3, 'weight': 4 },
];
this.demoPostForm = this.fb.group({
demoFormArray: this.populateForm()
});
}
populateForm(): FormArray {
let formFields: any[] = [];
this.demoData.forEach(element => {
formFields.push(this.fb.group({
'relationType': element.relationType,
'weight': element.weight
}));
});
return this.fb.array(formFields);
}
}发布于 2018-04-28 00:06:09
修改DemoPostViewModel以包含如下所示的构造函数:
public class DemoPostViewModel
{
public DemoPostViewModel()
{
SubUnits = new List<DemoPostModel>();
}
public IList<DemoPostModel> SubUnits { get; set; }
}https://stackoverflow.com/questions/50044214
复制相似问题