Javascript 将对象内的对象集合从js传递到C

Javascript 将对象内的对象集合从js传递到C,javascript,c#,api,asp.net-web-api,asp.net-core,Javascript,C#,Api,Asp.net Web Api,Asp.net Core,这个问题对你来说很容易,但我在任何地方都找不到答案,我也一直在搜索。如何将对象中的对象集合发送给C API方法,下面是我尝试发送的代码 { "Question":"sdvsdv", "PollQuestions": [ { "QuestionText":"Question Text" } ] } 我也尝试过使用高级REST客户端,不仅是从JS,我可以

这个问题对你来说很容易,但我在任何地方都找不到答案,我也一直在搜索。如何将对象中的对象集合发送给C API方法,下面是我尝试发送的代码

 {
  "Question":"sdvsdv",
  "PollQuestions":
            [
              {
                "QuestionText":"Question Text"
              }
            ]
}
我也尝试过使用高级REST客户端,不仅是从JS,我可以看到父对象参数的值,而且所有对象参数都是空的

请推荐一个工作环境。已经过了几天了,我过不去。提前谢谢

编辑:

以下是API方法的外观:

高级Rest客户端请求:

JS请求:

Poll是这样一个简单的类:

[Serializable]
[DataContract(Namespace = "")]
public class Poll
{
    [DataMember]
    public string Question
    {
            get;
            set;
    }

    [DataMember]
    public Collection<PollQuestion> PollQuestions { get; set; }

}

在您的情况下,如果问题是在C中映射请求JSON,请尝试以下代码:

班级结构:

public class PollQuestion
{
    public string QuestionText { get; set; }
}

public class RootObject
{
    public string Question { get; set; }
    public List<PollQuestion> PollQuestions { get; set; }
}
如果您使用的是WebAPI version=5.2.3,或者可能在较低版本中受支持,那么也无需将请求的JSON序列化为C类。用于为JSON生成C类

对于JSON结构C treats

这:

作为对象和

这:


列表或数组。

在您的情况下,如果问题是在C中映射请求JSON,请尝试以下代码:

班级结构:

public class PollQuestion
{
    public string QuestionText { get; set; }
}

public class RootObject
{
    public string Question { get; set; }
    public List<PollQuestion> PollQuestions { get; set; }
}
如果您使用的是WebAPI version=5.2.3,或者可能在较低版本中受支持,那么也无需将请求的JSON序列化为C类。用于为JSON生成C类

对于JSON结构C treats

这:

作为对象和

这:


列表或数组。

我在.NET Core中设置了一个简单的示例项目,它似乎可以很好地处理您的JSON数据

以下是我使用的类:

public class PollQuestion
{
    public string QuestionText { get; set; }
}

public class Poll
{
    public string Question { get; set; }
    public List<PollQuestion> PollQuestions { get; set; }
}
当我发出邮递员请求时,投票类会按预期填充

这里还有一个指向我的示例项目的链接:


你能在你的项目中改变你的模型来匹配我的吗?看看这是否有效?我猜您的模型是不正确的,因为JSON请求也适用于我。如果它不起作用,你能上传一个示例项目吗?这样我就可以查看是否可以修改它以使其起作用了?

我在.NET Core中设置了一个简单的示例项目,它似乎可以很好地处理你的JSON数据

以下是我使用的类:

public class PollQuestion
{
    public string QuestionText { get; set; }
}

public class Poll
{
    public string Question { get; set; }
    public List<PollQuestion> PollQuestions { get; set; }
}
当我发出邮递员请求时,投票类会按预期填充

这里还有一个指向我的示例项目的链接:


你能在你的项目中改变你的模型来匹配我的吗?看看这是否有效?我猜您的模型是不正确的,因为JSON请求也适用于我。如果它不起作用,您能否上传一个示例项目,以便我查看是否可以修改它以使其起作用?

我继承了一个使用[DataContract]和[DataMember]属性的类,因此我还必须对子类的所有参数使用DataMember

感谢大家的回答,但当参数类型复杂时,API方法中不需要[FromBody]

如果您没有在类中的任何位置使用DataMember,也没有继承任何使用它的类,那么它也可以在没有DataContract和DataMember的情况下工作


您可以在这里获得更多信息:

我继承了一个使用[DataContract]和[DataMember]属性的类,因此我还必须对子类的所有参数使用DataMember

感谢大家的回答,但当参数类型复杂时,API方法中不需要[FromBody]

如果您没有在类中的任何位置使用DataMember,也没有继承任何使用它的类,那么它也可以在没有DataContract和DataMember的情况下工作


您可以在此处获得更多信息:

ASP.NET核心,是吗?请放置相应的标签。如何传递json?请显示js代码。不是ASP.NET、ASP.NET Core和ASP.NET-web-api或ASP.NET mvc。我已经添加了我所做的所有截图。@Md.AbdulAlim[FromBody]是任何复杂类型的默认值。ASP.NET Core,是吗?请放置相应的标签。如何传递json?请显示js代码。不是ASP.NET、ASP.NET Core和ASP.NET-web-api或ASP.NET mvc。我已经添加了我所做的所有截图。@Md.AbdulAlim[FromBody]是任何复杂类型的默认值。
[]
public class PollQuestion
{
    public string QuestionText { get; set; }
}

public class Poll
{
    public string Question { get; set; }
    public List<PollQuestion> PollQuestions { get; set; }
}
    [HttpPost]
    public void Post([FromBody]Poll value)
    {

    }