0

就像标题说的我做了一个成功的更新,但它不会保存像用户角色或其他什么的关系。当我添加具有角色和所有角色的用户(在我的情况下)时效果很好,但更新不起作用,这只是与其他一切都得到更新的关系。我对其他对象也有这个问题。有谁知道为什么如果它在更新时更改它不会保存关系?我也发布了一些代码,但我觉得这在这里并不重要。我想我只是缺少一些简单的东西。

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");
            }

编辑

在这种情况下,我最终将 直接添加Languageculturesuser而不是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);
        }
4

1 回答 1

0

我仍然是 MVC 初学者,但我认为这只查找以“ ”字符串TryUpdateModel(user, "User")为前缀的 HTTP 帖子值。User.另外我认为它使用直接发布的数据,而不是您的 viewModel 实例。

于 2011-02-09T08:50:56.193 回答