Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务器未接收传入的JSON对象内的列表_C#_Json_Angularjs_Asp.net Web Api - Fatal编程技术网

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; } 
}