DropDownList获取null值并出现ArgumentNullException

时间:2014-07-08 03:10:40

标签: c# asp.net-mvc asp.net-mvc-4 null dropdownlistfor

我尝试做的是从控制器传递一个viewData来查看并在下拉列表中显示它。 我希望将选定的Id传递添加到m.movi​​e_type_id中。 但我继续得到ArgumentNullException。详细信息表明Value不能为null。

以下是我的代码和获取错误异常的方法。

<%=Html.DropDownListFor(m=> m.movie_type_id,new SelectList((IEnumerable)ViewData["MT"],"Id","Type")) %>

在控制器

public ActionResult AddMovie()
    {
        ViewData["MT"] = db.MovieType.ToList();
        return View();
    }

[HttpPost]
public ActionResult AddMovie()
    {
        return view();
    }

目前阶段仅供测试之用。由于在数据传递回控制器期间发生错误,我希望在继续之前修复它。

我哪里做错了?

1 个答案:

答案 0 :(得分:0)

请确保viewdata已被某些集合填充并传递到您的视图中,如

public ActionResult MyAction()
{
  ViewData["MT"] =YourIEnumerableCollection() //Code to get the collection
  return view(model);
}

修改

我认为你在POST场景中得到这个,你需要在POST中传递ViewData,就像

一样
[HttpPost]
public ActionResult AddMovie()
{
    ViewData["SQ"] = db.MovieType.ToList();
    return View();
}