EXT.NET ライブラリを使用して webclient から HTTPPOST を作成しようとしています。
ここに私の呼び出しがどのように見えるかです
<ext:Button ID="dugmeOdobri" runat="server" Text="Odobri Narudžbe" Icon="Accept" >
<DirectEvents>
<Click
Success="sayHello(result);"
Url="http://dnndev.me:9010/DesktopModules/WebApiSpn/API/odobrenje/odobri"
Type="Load"
Method="POST"
CleanRequest="true"
Json="true" >
<ExtraParams>
<ext:Parameter Name="Values" Value="Ext.encode(#{DocumentsGrid}.getRowsValues({selectedOnly:true}))" Mode="Raw" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
Fiddler と Chromes の F11 キャプチャ呼び出しは次のようになります
{"Values":"[{\"ID\":6894443,
\"SkladisteSifra\":\"001\",
\"SkladisteNaziv\":\"Skladi\\u0161te Veleprodaje RGT\",
\"StatusCode\":null,
\"StatusDescription\":\"Aktivna\",
\"Broj\":\"000009\",
\"Datum\":\"2013-06-13T00:00:00\",
\"PartnerSifra\":\"24055\",
\"PartnerNaziv\":\"15 APRIL\",
\"Napomena\":\"UGALJ\",
\"TipDokumenta\":\"VEL - Narud\\u017eba dobavlja\\u010du-slikovnica \",
\"Odobriti\":true,
\"Editable\":true}
]"}
その文字列を json2csharpに貼り付けると、 次のような poco が得られます。
public class RootObject
{
public string Values { get; set; }
}
私が望むのは、次のように poco へのリクエストを逆シリアル化することです。
public class RootObject
{
public int ID { get; set; }
public string SkladisteSifra { get; set; }
public string SkladisteNaziv { get; set; }
public object StatusCode { get; set; }
public string StatusDescription { get; set; }
public string Broj { get; set; }
public string Datum { get; set; }
public string PartnerSifra { get; set; }
public string PartnerNaziv { get; set; }
public string Napomena { get; set; }
public string TipDokumenta { get; set; }
public bool Odobriti { get; set; }
public bool Editable { get; set; }
}
サーバー側のメソッドはどのように見えますか? ここで、過去3時間でこれまでに試したn個の組み合わせの1つ
[HttpPost]
[AllowAnonymous]
public string odobri(HttpRequestMessage request)
{
Dictionary<string,string> values = request.Content.ReadAsAsync<Dictionary<string, string>>().Result;
narudzbeZaOdobriti c = null; ;
foreach (string s in values.Values)
{
c = Newtonsoft.Json.JsonConvert.DeserializeObject<narudzbeZaOdobriti>(s);
break;
}
return c.Broj;
}
どこが間違っているのかわかりません.Web Apiへの呼び出しに何か欠けていますか?