C# ASP.NET核心帖子数据未序列化自定义字段
我正在使用ASP.NETCore3.1和angular 我从对象模型向控制器方法发送post请求 控制器方法在输入端接受对象,但bindingParameters字段为空 bindingParameters字段是KeyValueItem对象的列表 TmObject.csC# ASP.NET核心帖子数据未序列化自定义字段,c#,asp.net-core,post,asp.net-web-api,C#,Asp.net Core,Post,Asp.net Web Api,我正在使用ASP.NETCore3.1和angular 我从对象模型向控制器方法发送post请求 控制器方法在输入端接受对象,但bindingParameters字段为空 bindingParameters字段是KeyValueItem对象的列表 TmObject.cs namespace v1.Atm { public class TmObject { [JsonProperty("id")] public int Id { get; set
namespace v1.Atm
{
public class TmObject
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("binding")]
public string Binding { get; set; }
[JsonProperty("sourceBindingParameters")]
public string SourceBindingParameters { get; set; }
[NotMapped]
[JsonProperty("bindingParameters")]
public List<TmKeyValueItem> BindingParameters
{
get
{
return JsonConvert.DeserializeObject<List<TmKeyValueItem>>(string.IsNullOrEmpty(SourceBindingParameters) ? "" : SourceBindingParameters);
}
set
{
SourceBindingParameters = JsonConvert.SerializeObject(value);
}
}
[JsonProperty("caption")]
public string Caption { get; set; }
[JsonProperty("description")]
public string Description { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonIgnore]
public string SourceParameterGroups { get; set; }
[NotMapped]
[JsonProperty("parameterGroups")]
public List<string> ParameterGroups
{
get
{
return JsonConvert.DeserializeObject<List<string>>(string.IsNullOrEmpty(SourceParameterGroups) ? "" : SourceParameterGroups);
}
set
{
SourceParameterGroups = JsonConvert.SerializeObject(value);
}
}
[NotMapped]
[JsonProperty("parameters")]
public List<TmObjectParameter> Parameters;
[NotMapped]
[JsonProperty("removeParameters")]
public List<int> RemoveParameters { get; set; }
public TmObject()
{
Parameters = new List<TmObjectParameter>();
RemoveParameters = new List<int>();
}
}
}
来自请求的
bindingParameters
不是string
值的列表,而是复杂的对象。您最好为此对象创建一个类
public class BindingParameter
{
public int Id { get; set; }
public string Key { get; set; }
public string Value { get; set; }
public bool Visible { get; set; }
}
并声明财产如下:
public List<BindingParameter> BindingParameters{ get; set; }
公共列表绑定参数{get;set;}
很抱歉示例中的不准确。事实上,项目类型是正确的公共列表绑定参数。
public class BindingParameter
{
public int Id { get; set; }
public string Key { get; set; }
public string Value { get; set; }
public bool Visible { get; set; }
}
public List<BindingParameter> BindingParameters{ get; set; }