Как гласит заголовок, я делаю успешное обновление, но оно не сохранит отношения, такие как роль пользователя или что-то еще. Это прекрасно работает, когда я добавляю пользователя (в моем случае) с ролями и всем, но обновление не работает, это только с отношением, все остальное обновляется. У меня есть эта проблема и с другими объектами. У кого-нибудь есть идеи, почему это не сохранит отношение, если оно будет изменено при обновлении? Я также опубликовал некоторый код, но я чувствую, что здесь это не так важно. Я думаю, что просто упускаю что-то простое.
if (ModelState.IsValid)
{
//hämta användaren och redigera parametrar
var user = _userService.GetById(viewModel.User.Id);
viewModel.User.Roles = user.Roles;
//kolla språken
if (viewModel.CultureSelected != null)
{
foreach (var item in viewModel.CultureSelected)
{
viewModel.User.LanguageCultures.Add(_languageCultureService.GetById(item));
}
}
//updatera och spara
TryUpdateModel(user, "User");
_userService.Save();
ViewData[Message] = "";
return RedirectToAction("Lista");
}
EDIT
В этом случае я добавил Languagecultures
к user
напрямую вместо viewmodel.user
:
public ActionResult Redigera(AdminUserAddViewModel viewModel)
{
//kolla om state är valid
if (ModelState.IsValid)
{
//hämta användaren och redigera parametrar
var user = _userService.GetById(viewModel.User.Id);
//kolla språken
if (viewModel.CultureSelected != null)
{
foreach (var item in viewModel.CultureSelected)
{
user.LanguageCultures.Add(_languageCultureService.GetById(item));
}
}
//updatera och spara
TryUpdateModel(user, "User");
_userService.Save();
ViewData[Message] = "";
return RedirectToAction("Lista");
}
viewModel.CultureSelectList = CutlureSelectList(_languageCultureService.GetAll());
return View(viewModel);
}