C# 服务器未接收传入的JSON对象内的列表
这些是函数中正在使用的数据协定C# 服务器未接收传入的JSON对象内的列表,c#,json,angularjs,asp.net-web-api,C#,Json,Angularjs,Asp.net Web Api,这些是函数中正在使用的数据协定 public class ResumeSkillsListDataContract : IResumeSkillsListDataContract { public IList<ISkillDataContract> KnownSkillsList { get; set; } public IList<ISkillDataContract> BadSkillsList { get; set; } public ILi
public class ResumeSkillsListDataContract : IResumeSkillsListDataContract
{
public IList<ISkillDataContract> KnownSkillsList { get; set; }
public IList<ISkillDataContract> BadSkillsList { get; set; }
public IList<ISkillDataContract> NewSkillsList { get; set; }
public Int32 PersonId { get; set; }
}
public class SkillDataContract : ISkillDataContract
{
public String Name { get; set; }
public Nullable<Int32> Id { get; set; }
public Nullable<Boolean> IsAssigned { get; set; }
public Nullable<Int32> SkillCategoryId { get; set; }
public Nullable<Int32> SkillCategoryMappingId { get; set; }
}
resumeParserService中的函数
self.PostResumeSkills = function (skills) {
var url = 'ResumeSkill/PostResumePersonSkills';
console.log(skills);
webApiService.Post(url, skills);
};
正在传递的示例JSON
{“KnownSkillsList”:[{“Name”:“C++”,“Id”:null,“IsAssigned”:null,“SkillCategoryId”:3,“skillcategoryMapping”:154},{“Name”:“Unix”,“Id”:null,“IsAssigned”:null,“SkillCategoryId”:3,“skillcategoryMapping”:219},{“Name”:.Net”,“Id”:null,“IsAssigned”:null,“skillcategoryMapping”:null,“skillcategoryMapping”:3,“skillcategoryMapping”:139},{“Name”:“Clearcase”,“Id”:null,“IsAssigned”,“SkillCategoryId”:3,“SkillCategoryMapping”:155},{“名称”:“Uml”,“Id”:null,“IsAssigned”:null,“SkillCategoryId”:3,“SkillCategoryMapping”:218},{“名称”:“Xml”,“Id”:null,“IsAssigned”:null,“SkillCategoryId”:3,“SkillCategoryMapping”:239},{“名称”:“Java”,“Id”:null,“IsAssigned”:null,“SkillCategoryMapping”:3,“SkillCategoryMapping”:173},{“Python名称”:“Python”“:null,“IsAssigned”:null,“SkillCategoryMappingId”:3,“SkillCategoryMappingGid”:199},{“名称”:“Visual Basic”,“Id”:null,“IsAssigned”:null,“SkillCategoryId”:3,“SkillCategoryMappingGid”:223}],“BadSkillsList”:[{“名称”:“算法”,“Id”:null,“IsAssigned”:null,“SkillCategoryMappingId”:3,“SkillCategoryMappingGid”:null}],“PersonId”:1203}”我认为这是由于您的列表
ResumeSkillsListDataContract
是一个接口的列表造成的。问题是,当JSON被反序列化时,反序列化程序不知道实例化什么具体类型
尝试更改此选项,看看它是否解决了问题
public class ResumeSkillsListDataContract : IResumeSkillsListDataContract
{
public IList<SkillDataContract> KnownSkillsList { get; set; }
public IList<SkillDataContract> BadSkillsList { get; set; }
public IList<SkillDataContract> NewSkillsList { get; set; }
public Int32 PersonId { get; set; }
}
公共类ResumeSkillsListDataContract:IResumeSkillsListDataContract
{
公共IList KnownSkillsList{get;set;}
公共IList BadSkillsList{get;set;}
公共IList NewSkillsList{get;set;}
公共Int32 PersonId{get;set;}
}
你有没有看过JSON的在线版本?这将是第一件要检查的事情-然后你可以看到它是客户端问题还是服务器问题。是的,我有。据我所知,它是干净的。我将在我的帖子中添加一个剪辑。
self.PostResumeSkills = function (skills) {
var url = 'ResumeSkill/PostResumePersonSkills';
console.log(skills);
webApiService.Post(url, skills);
};
public class ResumeSkillsListDataContract : IResumeSkillsListDataContract
{
public IList<SkillDataContract> KnownSkillsList { get; set; }
public IList<SkillDataContract> BadSkillsList { get; set; }
public IList<SkillDataContract> NewSkillsList { get; set; }
public Int32 PersonId { get; set; }
}