отображать роли пользователей для пользователей в базе данных MVC - PullRequest
2 голосов
/ 06 декабря 2011

Мне нужно показать все роли для пользователей, которые находятся в моей базе данных.Я использую запрос LINQ, который я нашел в другой публикации SO.У меня проблемы с фрагментом кода в моем представлении, и я получаю эту ошибку: CS0103: имя 'AllUsers' не существует в текущем контексте.Вот мой код ...

ViewModel:

     public class MyViewModel
     {
         public IEnumerable<MyUser> AllUsers { get; set; }
         public List<MyUser> myList { get; set; }
     }

Контроллер:

    public class RoleController : Controller
    {
        public ActionResult GetUsers()
        {
            var roles = from MembershipUser u in Membership.GetAllUsers()
                    select new MyUser
                    {
                        User = u,
                        UserRoles = Roles.GetRolesForUser(u.UserName)
                    };

            List<MyUser> res = new List<MyUser>();

            foreach (MyUser u in roles)
                res.Add(u);

            MyViewModel model = new MyViewModel { AllUsers = res };

            return View(model);
       }
   }

Просмотр (фрагмент):

<td>
  @if(!(bool)(ViewBag.UserNameIsFound != null))
  {                      
     @Html.ActionLink("Add as user", "CreateUser", "Account")
     <br />                     
     foreach (MyUser u in Model.AllUsers)
     {
         foreach (string role in u.UserRoles)
         {
              AllUsers = MyList.Add(currItem);
              Console.WriteLine(role + "<br />");
         }
     }
 } 
</td>

Любая помощьбудет принята с благодарностью.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2011

Не могу понять, что означает 10-я строка:

<td>
  @if(!(bool)(ViewBag.UserNameIsFound != null))
  {                      
     @Html.ActionLink("Add as user", "CreateUser", "Account")
     <br />                     
     foreach (MyUser u in Model.AllUsers)
     {
         foreach (string role in u.UserRoles)
         {
              // what means the next line? what is "AllUsers"?
10:           AllUsers = MyList.Add(currItem);
              Console.WriteLine(role + "<br />");
         }
     }
 } 
</td>

Что такое AllUsers? Я не вижу, что он объявлен как локальная переменная. Если вы имеете в виду Model.AllUsers, то вы будете перебирать начальный Model.AllUsers и постоянно менять его на новый. Это тоже не очень понятно.
Попробуйте закомментировать 10-ю строку.

0 голосов
/ 06 декабря 2011

Я думаю, вам нужно изменить следующую строку вашего взгляда.Я не знаю, что такое переменная с именем 'AllUsers' и почему здесь AllUsers?

AllUsers = MyList.Add(currItem);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...