MVC null异常

时间:2017-01-03 22:27:52

标签: c# asp.net .net asp.net-mvc

我正在制作我的MVC应用程序。一种观点包括表格。在填充之后,表单被验证,如果模型有效,那么它应该移动到另一个窗口,但如果没有,则不会发生任何事情,但显然,某些数据会丢失。我的控制器:

  public ActionResult PickGroupForHomework(PickGroupForHomeworkViewModel model)
        {
            ClassDeclarationsDBEntities2 entities = new ClassDeclarationsDBEntities2();
            model.groups = entities.Groups.ToList();
            model.users = entities.Users.ToList();
            int id = model.subject_id;
            var subj = entities.Subjects
                    .Where(b => b.class_id == id)
                    .FirstOrDefault();
            model.subject_name = subj.name;
            if (ModelState.IsValid)
            {

            }
            else
            {

                if (subj != null)
                {
                    model.subject_name = subj.name;
                }
                model.subject_id = model.subject_id;
                model.groups = entities.Groups.ToList();
                model.users = entities.Users.ToList();
                return View(model);
            }
            return View(model);

        }

显然,subject_idqty在错误验证后为空。为什么呢?

1 个答案:

答案 0 :(得分:2)

您是否在视图中,从模型绑定到Subject_Id属性的字段或隐藏字段?如果您在强类型视图中至少没有从模型绑定属性的隐藏字段,则当您的用户发布表单并调用控制器时,此数据将会丢失。

@Html.HiddenFor(m => m.Subject_Id)