表单数据未在asp.net核心mvc控制器模型中序列化

C#模型类

public class SubCategoryTwoViewModel { public long Id { get; set; } public string SubCatTwoName { get; set; } public CategoryViewModel Category { get; set; } public SubCategoryOneViewModel SubCatOne { get; set; } public string PictureUrl { get; set; } public List File { get; set; } public UserViewModel AddedBy { get; set; } public DateTime AddedOn { get; set; } public UserViewModel Updated_By { get; set; } public DateTime? UpdatedOn { get; set; } public bool Active { get; set; } } 

这是CategoryViewModel

 public class CategoryViewModel { public long CategoryId { get; set; } } 

这是控制器方法

 [HttpPost] public JsonResult AddEditSubCategoryTwo(SubCategoryTwoViewModel model) { } 

这是ajax调用,它使用Form Data序列化发送到控制器方法的数据。

 var ajaxUrl = ApplicationRootUrl("AddEditSubCategoryTwo", "Category"); var formData = new FormData(); var totalFiles = document.getElementById("subCatFile").files.length; for (var i = 0; i < totalFiles; i++) { var file = document.getElementById("subCatFile").files[i]; formData.append("File", file); } formData.append('SubCatTwoName', self.subCatTwoName()); var category = { CategoryId: self.selectCategory() }; formData.append('Category', category); var subCatOne= { SubCategoryOneId: self.selectCategorytwo() }; formData.append('SubCatOne', subCatOne); formData.append('Active', self.active()); $.ajax({ type: "POST", contentType: false, processData: false, url: ajaxUrl, data: formData, dataType: "json", success: function (data) { } }); 

我,我在控制器中获取一些字段数据,但java脚本值未序列化到控制器模型。

这是示例的屏幕截图 某些领域的数据

在屏幕截图中,我将Category&SubCatOne字段视为null 。 但是活动的,SubCatTwoName和File字段已经收到了值 。 我想在控制器模型对象中获取Category和SubCatOne值。 我怎样才能做到这一点。

试图直接添加对象将无法正常工作。 相反,您可以通过添加具有正确名称的嵌套字段来使用模型绑定(使用点分隔属性层次结构)。 例如

 formData.append('Category.CategoryId', self.selectCategory());