我需要显示数据库中用户的所有角色。我正在使用我在另一个SO帖子上找到的LINQ查询。我在视图中遇到代码片段时出现问题,我收到此错误:CS0103:当前上下文中不存在名称“AllUsers”。这是我的代码......
视图模型:
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>
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:0)
我认为您需要更改视图的以下行。 我不知道什么是名为'AllUsers'的变量以及为什么AllUsers在这里?
AllUsers = MyList.Add(currItem);
答案 1 :(得分:0)
我无法得到,第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
,并不断将其更改为新的{{1}}。这也不是很清楚
尝试评论第10行。