您好我正在尝试发布一个类似的对象:
public class myobj
{
public string name {get;set;}
public myEntity myentity {get;set;}
public mySecondEntity mySecondEntity {get;set;}
}
public class myEntity {get;set;}
{
public string name {get;set;}
public string description {get;set;}
}
public class mySecondEntity {get;set;}
{
public string name {get;set;}
public string description {get;set;}
}
当我使用生成myObj的新对象并使用PostUrlEncodedAsync时,它将其发布为:
name : "myname",
myentity : "detex.Models.DTO.myEntity",
mysecondentity : "detex.Models.DTO.mySecondEntity
不确定我的命名空间/类在这些字段中的作用。我发布的是 等待“myurl.com”.PostUrlEncodedAsync(_model)。
答案 0 :(得分:0)
Flurl假设传递给PostUrlEncodedAsync
的对象代表简单的名称/值对。它只会对您的值进行ToString
,这就是您获得detex.Models.DTO.myEntity
的原因。您希望将这些值序列化为JSON吗?如果是这样,你需要自己做:
"myurl.com".PostUrlEncodedAsync(new {
name = _model.name,
myentity = JsonConvert.SerializeObject(_model.myentity),
mysecondentity = JsonConvert.SerializeObject(_model.mySecondEntity)
});
将复杂对象发布为URL编码并不典型,这就是为什么序列化这些值不会内置到Flurl中。