在SimpleMembership中编辑用户配置文件数据

时间:2012-10-30 18:02:56

标签: asp.net-mvc-4 edit simplemembership

我在MVC4网络应用中使用SimpleMembership。我无法弄清楚如何编辑个人资料信息。我以为我可以像你做任何其他桌子那样做。

        [HttpPost]
        public ActionResult EditUser(UserProfile user)
        {
            if (ModelState.IsValid)
            {
                udb.Entry(user).State = EntityState.Modified;
                udb.SaveChanges();
                return RedirectToAction("Index");
            }

但是我得到一个错误,说当前上下文中不存在实体状态。我的上下文在控制器的顶部定义如下。

private UsersContext udb = new UsersContext();

我可以找到大量关于访问配置文件数据的参考资料,但没有用于编辑数据的内容。如何将编辑后的UserProfile数据保存回db?

编辑:我能够解决entityState错误 - 我必须包含system.data和system.data.entity。但是现在当我运行时,我在编辑时遇到错误,表示意外的行数被修改(0)。并指向udb.SaveChanges()行。仍然无法弄清楚如何修改UserProfile数据元素。

1 个答案:

答案 0 :(得分:0)

简单的回答。我需要在视图中为模型设置所有字段。我只允许用户更改6中的4个,因此两个未被设置。

我认为当您将模型传递给视图时,如果未在视图中设置视图,则视图会将相同的字段值传递给操作。例如:如果我在视图中设置FirstName而不是UserName,则发送到视图的原始UserName将传递给Model。情况似乎并非如此。对于模型中的所有项目,我不允许它们在视图中更改我必须设置隐藏字段来设置字段,以便发送完整的模型。

设置单个字段可能更好,但我不知道该怎么做,这不是问题。