C# GridView,它必须是IListSource、IEnumerable或IDataSource?

C# GridView,它必须是IListSource、IEnumerable或IDataSource?,c#,asp.net,gridview,C#,Asp.net,Gridview,这是我的实体框架api代码 公共类UpdateHotelInfoesController:ApiController { private UpdateHotelInfoEntities db=new UpdateHotelInfoEntities() //GET:api/UpdateHotelInfoes 公共IQueryable GetUpdateHotelInfo() { 返回db.UpdateHotelInfo; } //获取:api/UpdateHotelInfoes/5 [响应类型(t

这是我的实体框架api代码 公共类UpdateHotelInfoesController:ApiController { private UpdateHotelInfoEntities db=new UpdateHotelInfoEntities()

//GET:api/UpdateHotelInfoes
公共IQueryable GetUpdateHotelInfo()
{
返回db.UpdateHotelInfo;
}
//获取:api/UpdateHotelInfoes/5
[响应类型(typeof(UpdateHotelInfo))]
公共IHttpActionResult GetUpdateHotelInfo(内部id)
{
UpdateHotelInfo UpdateHotelInfo=db.UpdateHotelInfo.Find(id);
if(updateHotelInfo==null)
{
返回NotFound();
}
返回Ok(更新酒店信息);
}
c#代码

protectedasync void按钮4\u单击(对象发送方,事件参数e)
{
up.POSTAL_CODE=转换为32(TextBox2.Text);
HttpClient=新的HttpClient();
client.BaseAddress=新Uri(基本URL);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
StringContent con=newstringcontent(JsonConvert.SerializeObject(up),Encoding.UTF8,“application/json”);
HttpResponseMessage response=wait client.GetAsync(“api/UpdateHotelInfoes/”+TextBox2.Text);
response.EnsureSuccessStatusCode();
if(响应。IsSuccessStatusCode)
{            
var data=await response.Content.ReadAsStringAsync();
var a=JsonConvert.DeserializeObject(数据);
GridView1.DataSource=a;
GridView1.DataBind();
}
gridview控件的源代码

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanged="GridView1_SelectedIndexChanged1">
        <Columns>
            <asp:BoundField DataField="HOTEL_NAME" HeaderText="HOTEL_NAME" />
            <asp:BoundField DataField="ADDRESS_LINE" HeaderText="ADDRESS_LINE" />
            <asp:BoundField DataField="AREA" HeaderText="AREA" />
            <asp:BoundField DataField="CITY" HeaderText="CITY" />
            <asp:BoundField DataField="POSTAL_CODE" HeaderText="POSTAL_CODE" />
            <asp:BoundField DataField="STATE" HeaderText="STATE" />
            <asp:BoundField DataField="COUNTRY" HeaderText="COUNTRY" />
            <asp:BoundField DataField="PHONE_NUMBER" HeaderText="PHONE_NUMBER" />
            <asp:BoundField DataField="LANDLINE" HeaderText="LANDLINE" />
            <asp:BoundField DataField="EMAIL_ID" HeaderText="EMAIL_ID" />
            <asp:BoundField DataField="WEBSITE" HeaderText="WEBSITE" />
            <asp:BoundField DataField="PROPERTY_TYPE" HeaderText="PROPERTY_TYPE" />
            <asp:BoundField DataField="PROPERTY_GRADE" HeaderText="PROPERTY_GRADE" />
            <asp:BoundField DataField="REGISTRATION" HeaderText="REGISTRATION" />
        </Columns>
    </asp:GridView>

为什么数据没有显示在gridview中,并获取错误信息 gridview1.datasource=a;>>>>GridView,它必须是IListSource、IEnumerable或IDataSource


要解决此问题,我必须做哪些更改。任何人都知道如何解决此问题。

请不要大喊大叫,单击“编辑”按钮,将问题编辑为更好的形式,并正确设置代码格式。然后解释错误之处以及需要帮助的内容。GridView.DataSource需要一个集合而不是一个对象使用.List()数据源应该是集合而不是对象。@virender为什么需要UpdateHotelInfo来回答这个问题?它是什么并不重要……它显然不是一个collectionSee如果UpdateHotelInfo是对象并且包含任何集合,那么就像使用.CustomerData一样使用该集合。
protected async void Button4_Click(object sender, EventArgs e)
    {
        up.POSTAL_CODE = Convert.ToInt32(TextBox2.Text);
        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri(Base_URL);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        StringContent con = new StringContent(JsonConvert.SerializeObject(up), Encoding.UTF8, "application/json");
        HttpResponseMessage response = await client.GetAsync("api/UpdateHotelInfoes/" + TextBox2.Text);
        response.EnsureSuccessStatusCode();
        if (response.IsSuccessStatusCode)
        {            
              var data = await response.Content.ReadAsStringAsync();
            var a = JsonConvert.DeserializeObject<MainObject>(data);

                     GridView1.DataSource = a;
                     GridView1.DataBind();
                 }
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanged="GridView1_SelectedIndexChanged1">
        <Columns>
            <asp:BoundField DataField="HOTEL_NAME" HeaderText="HOTEL_NAME" />
            <asp:BoundField DataField="ADDRESS_LINE" HeaderText="ADDRESS_LINE" />
            <asp:BoundField DataField="AREA" HeaderText="AREA" />
            <asp:BoundField DataField="CITY" HeaderText="CITY" />
            <asp:BoundField DataField="POSTAL_CODE" HeaderText="POSTAL_CODE" />
            <asp:BoundField DataField="STATE" HeaderText="STATE" />
            <asp:BoundField DataField="COUNTRY" HeaderText="COUNTRY" />
            <asp:BoundField DataField="PHONE_NUMBER" HeaderText="PHONE_NUMBER" />
            <asp:BoundField DataField="LANDLINE" HeaderText="LANDLINE" />
            <asp:BoundField DataField="EMAIL_ID" HeaderText="EMAIL_ID" />
            <asp:BoundField DataField="WEBSITE" HeaderText="WEBSITE" />
            <asp:BoundField DataField="PROPERTY_TYPE" HeaderText="PROPERTY_TYPE" />
            <asp:BoundField DataField="PROPERTY_GRADE" HeaderText="PROPERTY_GRADE" />
            <asp:BoundField DataField="REGISTRATION" HeaderText="REGISTRATION" />
        </Columns>
    </asp:GridView>