2

3日間、オブジェクトをwebapiに送信しようとしています。私はC#からそれを行うことはできません:/

PostAsync メソッドを試していましたが、json を送信しようとしていました (しかし、デシリアライズできません)。JObject を使用しようとしていましたが、何もできません。これを行う方法がわかりません。

私は簡単な方法を手に入れました

    public string PostMethod(Location param)
    {
        var test = param;

        return test.name;
    }

webapi で null を取得しないように、C# から Location オブジェクトを送信するにはどうすればよいですか? 私が達成した唯一のことは、「文字列」のような単純なタイプを送信することです。しかし、私の方法はどれも、より複雑なオブジェクトでは機能しません。

Location オブジェクトの下

public partial class Location
{
    public Location()
    {
        this.Category = new HashSet<Category>();
    }

    public int id { get; set; }
    public Nullable<System.DateTime> create_date { get; set; }
    public Nullable<System.DateTime> modify_date { get; set; }
    public Nullable<int> create_user_id { get; set; }
    public Nullable<int> modify_user_id { get; set; }
    public string name { get; set; }
    public string description { get; set; }
    public Nullable<int> photo_id { get; set; }
    public string www { get; set; }
    public string count_data { get; set; }
    public string status { get; set; }
    public Nullable<double> latitude { get; set; }
    public Nullable<double> longitude { get; set; }
    public string city { get; set; }
    public string country { get; set; }
    public string zip { get; set; }
    public string telephone { get; set; }
    public string street { get; set; }

    public virtual AzureMedia AzureMedia { get; set; }
    public virtual Users Users { get; set; }
    public virtual Users Users1 { get; set; }
    public virtual ICollection<Category> Category { get; set; }
}
4

1 に答える 1

4

NuGet から最新の Web API をインストールしましたか? また、これには Json.NET も必要です。

これでうまくいくはずです:

    Location loc = new Location( ..... );

    var jsonFormatter = new JsonMediaTypeFormatter();

    HttpContent content = new ObjectContent<Location>(loc , jsonFormatter);

    HttpResponseMessage responseMessage = client.PostAsync(uri, content).Result;
于 2012-10-03T08:30:28.737 に答える