Как связать список строк с идентификатором списка данных в ASP.NET MVC? - PullRequest
0 голосов
/ 04 апреля 2019

Как связать список с идентификатором списка данных.Список находится в классе контроллера, а идентификатор списка данных находится в представлении (файл chtml)?

Я пытался использовать этот идентификатор списка данных в классе контроллера, но я получаю сообщение об ошибке «Идентификатор имени» (некоторый идентификатор)name) "не существует в текущем контексте".

См. код ниже:


<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();
         }*/

    }
}

1 Ответ

0 голосов
/ 11 апреля 2019
@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();
                }
}
...