0

こんにちは、次のようなオブジェクトを投稿しようとしています:

    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 

私の名前空間/クラスがそれらのフィールドで何をしているのかわかりません。これを await "myurl.com".PostUrlEncodedAsync(_model) として投稿しています。

4

1 に答える 1

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 に組み込まれていません。

于 2016-03-07T16:01:48.750 に答える