返回查看空模型数据时,MVC 4验证NullReferenceException

时间:2014-04-03 20:04:27

标签: asp.net-mvc

在我的控制器中,我正在获取一些数据以填充视图中的组合框。发布数据时,我会检查

ModelState.IsValid

属性,如果没有,我需要返回视图以显示验证消息错误。但是,模型只包含已发布的数据,加载组合框所需的其他数据为空,并抛出NullReferenceException。哪种解决方法正确?

public ActionResult Index(){
        CourtBussines courtBussines = new CourtBussines();
        IList<Court> courts = new List<Court>();
        courts.AddRange(courtBussines.GetCourtsOpenedList());
        CourtSelectionModel courtSelectionModel = new CourtSelectionModel{Courts = courts, SelectedCourtId = -1};
        return View(courtSelectionModel);
    }

    [Authorize]
    [HttpPost]
    public ActionResult Index(CourtSelectionModel courtSelectionModel){
        if (!ModelState.IsValid){
            return View(courtSelectionModel); //Here, the data to load combobox is null and fails.
        }
        return RedirectToAction("Horarios", courtSelectionModel);
    }

1 个答案:

答案 0 :(得分:2)

您必须重新初始化法院列表,因为未发布整个列表。

尝试类似的东西。

[Authorize]
[HttpPost]
public ActionResult Index(CourtSelectionModel courtSelectionModel){
    if (!ModelState.IsValid){
        IList<Court> courts = new List<Court>();
        courts.AddRange(courtBussines.GetCourtsOpenedList());
        courtSelectionModel.Courts = Courts;
        courtSelectionModel.SelectedCourtId = -1;
        return View(courtSelectionModel); //Here, the data to load combobox is null and    fails.
    }
    return RedirectToAction("Horarios", courtSelectionModel);
}