首页 > 解决方案 > 如何将字符串列表绑定到 ASP.NET MVC 中的 datalist id?

问题描述

如何将列表绑定到数据列表 ID。List 在控制器类中,而 datalist id 在视图(chtml 文件)中?

我尝试在控制器类中使用此数据列表 id,但我收到错误“当前上下文中不存在名称“id(某些 id 名称)”。

见下面的代码:


<input list="cardProgram" class="form-control input-group-lg">
    <asp:DataList id="cardProgram" runat="server">
         <ItemTemplate>
             <%# Eval("Value") %>>
         </ItemTemplate>
    </asp:DataList>


protected void Page_Load()
{
    BindCardPrograms();
}

private async void BindCardPrograms()
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri("http://localhost:59066/");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new 
            MediaTypeWithQualityHeaderValue("application/json"));
        ViewBag.country = "";
        HttpResponseMessage response = await 
            client.GetAsync("api/Profile/InitializeCardProgramSelection");
        if (response.IsSuccessStatusCode)
        {
            List<String> cardPrograms = 
                response.Content.ReadAsAsync<List<String>>().Result;
            cardProgram.DataSource = cardPrograms;
            cardProgram.DataBind();
        }
        /*else
        {
            return View();
         }*/

    }
}

标签: c#htmlasp.net-mvccontrollerdatalist

解决方案


@Html.DropDownList("cardProgram", null, "--Select--", new
                       {
                           @class = "form-control input-group-lg",
                           @onChange = "return "
                       })
using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:59066/");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                ViewBag.country = "";
                HttpResponseMessage response = await client.GetAsync("api/CardCreation/Configure");
                if (response.IsSuccessStatusCode)
                {
                    List<SelectListItem> cardPrograms = response.Content.ReadAsAsync<List<SelectListItem>>().Result;
                    ViewBag.cardProgram = cardPrograms;
                    return View();
                }
                else
                {
                    return View();
                }
}

推荐阅读