2016-10-18 8 views
0

У меня есть контроллер,MVC DropDownList: преобразовать список в SelectListItem

public class HomeController : Controller 
    {   
     // GET: Home 
     public ActionResult Index() 
     { 
      ViewData["Users"] = DataFill.GetUsers(); 
      return View(); 
     } 
    } 

Вид:

<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
</head> 
<body> 
<div> 
    @Html.DropDownList("Numbers",(IEnumerable<SelectListItem>)ViewData["UserList"]) 
</div> 
</body> 
</html> 

Модель:

public class User 
{ 
    public string DisplayName { get; set; } 
    public string Login { get; set; } 
} 

И метод, который заполняет список:

public static List<SelectListItem> GetUsers() 
{ 
    using (var command = new SqlCommand(query, DbConnection)) 
    { 
     DbConnection.Open(); 
     using (var reader = command.ExecuteReader()) 
     { 

      while (reader.Read()) 
       UserList.Add(new User {Login = reader.GetString(0), DisplayName = reader.GetString(1)}); 
     } 
    } 

    return UserList.ToList(); 
} 

Но в Visual Studio я получаю сообщение об ошибке: «Невозможно преобразовать тип выражения User to return type SelectListItem». Итак, как я могу преобразовать список, который я получаю из базы данных в тип SelectListItem?

ответ

0

Вот решение для преобразования List в SelectListItem:

public static List<SelectListItem> GetUsers() 
{ 
    List<SelectListItem> items = new List<SelectListItem>(); 
    using (var command = new SqlCommand(query, DbConnection)) 
    { 
     DbConnection.Open(); 
     using (var reader = command.ExecuteReader()) 
     { 
      while (reader.Read()) 
      { 
       items.Add(new SelectListItem { 
       Text = reader.GetString(0), 
       Value = reader.GetString(1) 
       }); 
      } 
     } 
    } 
    return items; 
} 
+0

Спасибо, это работает. –

+0

Я отказался, потому что вы не объяснили, почему это работает или что было исправлено, чтобы заставить его работать – zerohero

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

  • Нет связанных вопросов^_^