2015-04-02 4 views
0

Как говорится в названии, я пытаюсь получить ответ от веб-API и привязать его к выпадающему списку. Есть ли способ сделать это, используя метод HttpClient, описанный в их documentation? API возвращает список объектов в формате JSON.Связать ответ ASP API с веб-интерфейсом с выпадающим списком

Вот мой код:

using (HttpClient client = new HttpClient(handler)) 
{ 
    client.BaseAddress = new Uri("MyURI"); 
    HttpResponseMessage response = client.GetAsync("Resource").Result; 
    if (response.IsSuccessStatusCode) 
    { 
     dynamic content = response.Content.ReadAsStringAsync().Result; 
     //Somehow bind to DropDown 
     //MyDdl.DataSource = content; 
    } 
} 

Я рассматривал, пытаясь превратить его в DataTable, чтобы связать, но это, кажется, как много усилий, чтобы сделать это.

UPDATE

Это то, что возвращается из

[ 
    {"ID":"1","Name":"Bob","Authorizations":[]}, 
    ... 
] 

Обратите внимание, как один из свойств Authorizations список сам по себе, я предполагаю, я должен буду перебирать и опустите это свойство, чтобы связать DropDown с DataTextField = Name и DataValueField = ID.

+0

Является ли frontform Webforms? – Pharylon

+0

@Pharylon Yup, WebForms. – KidBatman

+0

Можете ли вы вставить контент, который вы получите из ответа инструкции.Content.ReadAsStringAsync(). Результат; –

ответ

0

Вы должны быть в состоянии связать непосредственно к этому объекту, даже не бросайте его что-то значимое, выполнив: связывание

var content = JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result); 
MyDdl.DataSource = content; 
MyDdl.DataTextField = "Name"; 
MyDdl.DataValueField = "ID"; 
MyDdl.DataBind(); 

Данные делает всю работу отражения на объектах.

Если вы используете JavaScriptSerializer или что-то другое, отличное от JSON.NET, вам, возможно, придется выполнить еще одну работу, но JSON.NET обрабатывает простые данные, как это довольно хорошо.

Смежные вопросы