Javascript 获取与一个用户(ASP.NET)相关的所有角色
我有三张桌子。用户、角色和角色用户 以下是用户模型: 下面是UserToRole模型:Javascript 获取与一个用户(ASP.NET)相关的所有角色,javascript,asp.net,asp.net-mvc,entity-framework,Javascript,Asp.net,Asp.net Mvc,Entity Framework,我有三张桌子。用户、角色和角色用户 以下是用户模型: 下面是UserToRole模型: 如何解决问题?您应该将服务器上的角色与其关联的用户分组。例如,像这样的模型: public class UserViewModel { public string UserName { get; set; } public IEnumerable<string> Roles { get; set; } } 现在进行以下查询: public List<UserViewMode
如何解决问题?您应该将服务器上的角色与其关联的用户分组。例如,像这样的模型:
public class UserViewModel
{
public string UserName { get; set; }
public IEnumerable<string> Roles { get; set; }
}
现在进行以下查询:
public List<UserViewModel> GetUsers()
{
var users = db.Users
.Include(u => u.UserToRoles.Select(ur => ur.Role))
.Select(u => new UserViewModel
{
UserName = u.Name,
Roles = u.UserToRoles.Select(ur => ur.Role.Name)
})
.ToList();
return users;
}
现在,在客户机上,您可以逐个用户循环数据,例如:
function GetUsers() {
let url = "/Home/GetUsers";
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
success: function (data) {
var separator = "";
for (var i = 0; i < data.length; ++i) {
var userRow = data[i].UserName + " - " + data[i].Roles.join(", ");
$('#taskresult3').append(separator + userRow);
separator = ",";
}
}
});
在您的回购方法代码中,您有一个问题您选择,用户不包含SelectOops的定义,打字错误小,当您在SO中输入时很难做到这一点,并且不是一个合适的IDE:Nope。不管用。我像这样尝试了var users=db.users.Selectu=>newuserviewmodel{UserName=u.Name,Roles=u.UserToRoles.Selectur=>ur.Role.RoleName}.ToList;但现在我看不到RoleName了,我已经添加了一个Include,这有帮助吗?
public List<UserViewModel> GetUsers()
{
var result = db.UserToRoles.Select(x=>new UserViewModel
{
UserName = x.User.Name,
RoleName = x.Role.RoleName
}).ToList();
return result;
}
function GetUsers() {
let url = "/Home/GetUsers";
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
success: function (data) {
var separator = "";
for (var i = 0; i < data.length; ++i) {
$('#taskresult3').append(separator + '<b>' + data[i].UserName + "-" + data[i].RoleName + '</b>');
separator = ",";
}
}
});
}
public class UserViewModel
{
public string UserName { get; set; }
public IEnumerable<string> Roles { get; set; }
}
public List<UserViewModel> GetUsers()
{
var users = db.Users
.Include(u => u.UserToRoles.Select(ur => ur.Role))
.Select(u => new UserViewModel
{
UserName = u.Name,
Roles = u.UserToRoles.Select(ur => ur.Role.Name)
})
.ToList();
return users;
}
function GetUsers() {
let url = "/Home/GetUsers";
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
success: function (data) {
var separator = "";
for (var i = 0; i < data.length; ++i) {
var userRow = data[i].UserName + " - " + data[i].Roles.join(", ");
$('#taskresult3').append(separator + userRow);
separator = ",";
}
}
});