Skip to main content
 首页 » 编程设计

javascript之将对象内的对象集合从 js 传递到 C#

2024年01月29日27zengkefu

这个问题对你来说可能很简单,但我无法在任何地方找到解决方案,我也在 SO 上进行了搜索。如何将对象内的对象集合发送到 C# API 方法,这是我尝试发送的代码

 { 
  "Question":"sdvsdv", 
  "PollQuestions": 
            [ 
              { 
                "QuestionText":"Question Text" 
              } 
            ] 
} 

我也尝试过高级 REST 客户端(不仅来自 JS),我可以看到父对象参数的值,但 PollQuestions 对象参数都是空的。

请建议解决方法。已经几天了,我无法通过它。提前致谢。

编辑:

API 方法如下所示:

高级 Rest 客户端请求:

JS请求:

Poll 是一个像这样的简单类:

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

PollQuestion 对象:

[Serializable] 
public class PollQuestion : AnotherClass 
{ 
    public string QuestionText 
    { 
            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; } 
} 

在Post使用 [FromBody]将 JSON 映射到 C# 类的属性:

public void YourMethod([FromBody] RootObject data) 
{ 
 // your code to use request data 
} 

如果您使用的是 WebAPI version="5.2.3" (或者也可能在较低版本中受支持)无需将请求的 JSON 序列化为 C# 类。使用 this生成 C# JSON 的类(class).

对于JSON结构C#款待,

这个:

{ 
 
} 

作为Object和

这个:

[] 

到List<>或者 Array .