无法将更新发布到数据库。并非所有代码路径都返回值

时间:2018-04-12 19:43:30

标签: asp.net asp.net-mvc

    [HttpPost]
    public ActionResult UpdateDetail(User user)
    {
        bool Status = false;
        string message = "";
        // Model Validation 
        if (ModelState.IsValid)
        {
            using (UsersDatabaseEntities ude = new UsersDatabaseEntities())
            {
                var v = ude.Users.Where(a => a.Email == User.Identity.Name).FirstOrDefault();
                user = v;
                ude.Entry(User).State = EntityState.Modified;
                ude.SaveChanges();
            }
            return View(user);
        }
    }

我在将数据保存到数据库时一直出错。

UpdateDetail在检索邮件时工作,但在保存时我一直收到错误。

2 个答案:

答案 0 :(得分:1)

您的问题是,如果您的ModelState.IsValid == false,那么您没有返回任何内容。我在下面的代码中给出了评论。

根据您的逻辑需要做什么,如果IsValid == false,将确定需要返回的内容

public ActionResult UpdateDetail(User user)
    {
        bool Status = false;
        string message = "";
        // Model Validation 
        if (ModelState.IsValid)
        {
            using (UsersDatabaseEntities ude = new UsersDatabaseEntities())
            {
                var v = ude.Users.Where(a => a.Email == User.Identity.Name).FirstOrDefault();
                user = v;
                ude.Entry(User).State = EntityState.Modified;
                ude.SaveChanges();
            }
            // this is your issue, this needs to be outisde the if statement, or you have to do an else and return null (or whatever you need to based off your logic)                
            return View(user);
        }
    }

答案 1 :(得分:1)

return语句保留在If语句之外。这将修复您的错误。如果模型是有效的模型更新与数据库中的用户详细信息将推送到视图。其他明智的相同用户模型将被推送到视图。

        [HttpPost]
        public ActionResult UpdateDetail(User user)
        {
            bool Status = false;
            string message = "";
            // Model Validation 
            if (ModelState.IsValid)
            {
                using (UsersDatabaseEntities ude = new UsersDatabaseEntities())
                {
                    var v = ude.Users.Where(a => a.Email == User.Identity.Name).FirstOrDefault();
                    user = v;
                    ude.Entry(User).State = EntityState.Modified;
                    ude.SaveChanges();
                }

            }
             return View(user);
        }