2015-07-20 2 views
-1

Я не уверен, что это неправильно, на мой домашний контроллер я собирающего данные из базы данных, назначаемый и его моделиMVC5 Отображение данных из базы данных Возвращающиеся Null В View

контроллер

public ActionResult Index() 
     { 
      //Edited For Security Reasons 
      UserManager.Manager manager = new UserManager.Manager(); 

      var data = manager.GetAllUsers(); 
      var userDetails = from u in data 
           select new UserDetail 
           { 
            UserID = u.Id, 
            Username = u.Name, 
            UserLogin = u.Login, 
            FirstName = u.FirstName, 
            Surname = u.Surname, 
            Email = u.Email, 
            Active = Convert.ToInt32(u.Active), 
            RightID = u.RightsId, 
            GroupID = u.GroupsId, 
           }; 
      userDetails.ToList(); 
      return View(); 
     } 

Это заселение в UserDetails, как это имеет значение, когда я нажимаю его после выхода из прерывания в return View();

Модель

public class UserDetail 
{ 
    public int UserID { get; set; } 
    public string Username { get; set; } 
    public string UserLogin { get; set; } 
    public string FirstName { get; set; } 
    public string Surname { get; set; } 
    public string Email { get; set; } 
    public int Active { get; set; } 
    public List<int> RightID { get; set; } 
    public List<int> GroupID { get; set; } 
} 

Visual Studio говорит мне, что проблема с моей @foreach (var item in Model), что она возвращается null, но я не понимаю, как это может быть null, когда он заселяется в главном контроллере.

Посмотреть

@model IEnumerable<WebApplication1.Models.UserDetail> 

<table class="table" id="tbData" cellspacing="5" border="1"> 
    <tr> 
     <th>UserID</th> 
     <th>UserLogin</th> 
     <th>FirstName</th> 
     <th>Surname</th> 
     <th>Email</th> 
     <th>Active/th> 
    </tr> 

    @foreach (var item in Model) 
    { 
     <tr> 
      <td>@Html.DisplayFor(model => item.UserID)</td> 
      <td>@Html.DisplayFor(model => item.UserLogin)</td> 
      <td>@Html.DisplayFor(model => item.FirstName)</td> 
      <td>@Html.DisplayFor(model => item.Surname)</td> 
      <td>@Html.DisplayFor(model => item.Email)</td> 
      <td>@Html.DisplayFor(model => item.Active)</td> 
     </tr> 
    } 
</table> 

Спасибо за вашу помощь заранее

ответ

0

Вы не возвращаем модель:

userDetails.ToList(); 
return View(); 

Сделайте так:

return View(userDetails.ToList()); 
+0

не сваливать свои ошибки при всех ответов, исследовать их самостоятельно, и если вы не можете понять это, добавить новый вопрос. Эти ответы устранили вашу проблему. – CodeCaster

+0

Прошу прощения, я новичок в Stack @CodeCaster – hjardine

0

Вы ничего не возвращаете к своему мнению, поэтому вы не можете получить какие-либо данные из базы данных

так что вам нужно сделать, это вернуть список пользователей в представление и убедиться, что ваши данные модели в вашем представлении из IEnumerable или Список

var userDetails = from u in data 
          select new UserDetail 
          { 
           UserID = u.Id, 
           Username = u.Name, 
           UserLogin = u.Login, 
           FirstName = u.FirstName, 
           Surname = u.Surname, 
           Email = u.Email, 
           Active = Convert.ToInt32(u.Active), 
           RightID = u.RightsId, 
           GroupID = u.GroupsId, 
          }.ToList(); 
return View(userDetails) 
Смежные вопросы