2013-08-24 4 views
0

Моего ДействияНаходить Роли MVC 4 Simple Членских

[Authorize(Roles = "Admin")] 
public ActionResult Index() 
{ 
    using (var ctx = new _dbContext()) 
    { 
     return View(ctx.UserProfiles.OrderBy(x => x.UserId).ToList()); 
    } 
} 

Я хочу, чтобы отобразить роли с UserId и UserName, как я могу это сделать ??

Обновление: вид Модель

public class AccountIndexViewModel 
{ 
    public int UserId { get; set; } 
    public string UserName { get; set; } 
    public string Roles { get; set; } 
} 

Посмотреть

@using GoldCalculator.Models 
@model IEnumerable<AccountIndexViewModel> 
      @foreach (var user in Model) 
      { 
       <tr> 
        <td>@user.UserId</td> 
        <td>@user.UserName</td> 
        <td>@user.Roles</td> 
        <td> @Html.ActionLink("X", "Delete", new { id = @user.UserName }, new { @class = "deletebtn"})</td> 
       </tr> 
      } 

Выход System.String []

+0

В чем проблема с отображением этого? Вы не знаете, как это сделать или что? – VsMaX

+0

Dunt знает, как добраться до ролей. Профили пользователя не имеют атрибута роли. Я чувствую себя глупым dunt знаю, почему я вставил этот код ... Просто хочу знать, как попасть в роли и показать их с именем пользователя в Простом членстве –

ответ

2

Предполагая, что вы включили роли в вашем приложении, и что вы уже создали некоторые должности:

using WebMatrix.WebData; 
///blah blah blah... 

///inside some action: 
var roles = (SimpleRoleProvider)Roles.Provider; 

var allRoles = roles.GetAllRoles(); 

Получение роли для конкретного пользователя:

var userRoles = roles.GetRolesForUser("[email protected]"); 

Отвечая вам новый вопрос, попробуйте следующее:

var model = ctx.UserProfiles.OrderBy(x => x.UserId); 
var newModel = from ab in model 
      select new 
      { 
       UserName = ab.UserName, 
       UserId = ab.UserId, 
       Role = roles.GetRolesForUser(ab.UserName) 
      }; 

Вы присваиваете значение переменной, которая уже была объявлена ​​и, видимо, типы данных не совпадают ,

+0

Спасибо за ваше сообщение .. Пожалуйста, см. Обновления в моем вопросе. –

+0

Просмотреть мое обновленное сообщение – VsMaX

+0

System.String [] У меня есть этот вывод ... Я думаю, что есть какая-то проблема с преобразованием ... Я обновил вопрос ... –