Я пытаюсь использовать Kendo UI впервые, я хочу создать Kendo UI, в котором есть список некоторых ролей для пользователей. Поэтому мне нужно иметь строку с UserName и ... список ролей. Но я не делаю знать, как создать этот ряд!
это моя пользовательская модель:
public class UserViewModel
{
public string password { get; set; }
public string ConfirmPassword { get; set; }
public string UserName { get; set; }
public List<IdentityRole> Roles { get; set; }
}
и это пользовательский сервис:
private ApplicationDbContext db = new ApplicationDbContext();
private IList<UserViewModel> GetAll()
{
var allusers = HttpContext.Current.Session["AllCountries"] as
IList<UserViewModel>;
if (allusers == null)
{
allusers = db.Users.Select(s => new UserViewModel
{
UserName = s.UserName,
}).ToList();
HttpContext.Current.Session["AllPerson"] = allusers;
}
return allusers;
}
public IEnumerable<UserViewModel> Read()
{
return GetAll();
}
public void Create(UserViewModel myuser)
{
var store = new UserStore<ApplicationUser>(db);
var manager = new ApplicationUserManager(store);
var CustomEmail = new Guid().ToString() + "@gmail.com";
manager.Create(new ApplicationUser
{
Id = new Guid().ToString(),
UserName = myuser.UserName,
Email = CustomEmail
}, myuser.password);
db.SaveChanges();
}
public void Update(UserViewModel vwusers)
{
if (vwusers.UserName!=null)
{
var store = new UserStore<ApplicationUser>(db);
var manager = new ApplicationUserManager(store);
var objCountry = manager.FindByName(vwusers.UserName);
if (objCountry != null)
{
objCountry.UserName = vwusers.UserName;
db.Entry(objCountry).State =
System.Data.Entity.EntityState.Modified;
db.SaveChanges();
}
}
}
и мой взгляд:
...
@(Html.Kendo().Grid<UserViewModel>()
.Name("Grid").Sortable()
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.Columns(col =>
{
col.Bound(x => x.UserName).Filterable(ftb => ftb.Cell(cell =>
cell.Operator("contains").SuggestionOperator(FilterType.Contains)));
col.Bound(x => x.password).Visible(false);
col.Bound(x => x.ConfirmPassword).Visible(false);
col.Command(e => e.Edit().Text("Edit"));
col.Command(e => e.Destroy().Text("Delete"));
})
.Editable(editable => editable.Mode(GridEditMode.PopUp))
.ToolBar(s => s.Create().Text("AddCountry"))
.Pageable(page =>
page.Refresh(true).PageSizes(true).ButtonCount(5))
.ClientDetailTemplateId("Test")
.DataSource(ds =>
ds.Ajax()
.Model(m => {
m.Id(a => a.UserName);
m.Field(p => p.Roles).DefaultValue(new List<IdentityRole>());
})
.PageSize(10)
.Events(events => events.Error("error_handler"))
.Read(r => r.Action("ReadMasters", "User"))
.Create(c => c.Action("AddNewMaster", "User").Type(HttpVerbs.Post))
.Update(c => c.Action("UpdateMaster", "User"))
.Destroy(c => c.Action("DeleteMaster", "User"))
)
.Events(e => e.DataBound("dataBound"))
)
но я не знаю, как отобразить роли в виде списка для создания и обновления!
Заранее спасибо за помощь