获取下拉列表数据的问题

时间:2014-09-10 13:13:48

标签: c# asp.net-mvc razor

我有一个从数据库中获取数据的下拉列表

它包含4个数据:

我的控制员:

public ActionResult Index()
    {        
        ViewBag.Postes = _db.Postes.ToList();           
        return View();

    }

    [HttpPost]
    public ActionResult Index( Poste poste,string num_cin="R346399")
    {

        if (ModelState.IsValid)
        {
            if (poste.Id == 3)
            {
            return RedirectToAction("Inscription", "Candidat");
            }

        return View(poste);


          }

      }

我的观点

        @Html.DropDownListFor(model => model.Id,
        new SelectList(ViewBag.Postes, "Id", "intitule_poste"),"choisir le poste")

问题是如果我从下拉列表中选择一个值!= 3它会给我一个错误"项目必须不为空"

1 个答案:

答案 0 :(得分:1)

您查看包含基于@Html.DropDownListFor()值生成的ViewBag.Postes。当您返回视图时(即当poste.Id不等于3时),您必须重新分配ViewBag.Postes的值

if (ModelState.IsValid)
{
  if (poste.Id == 3)
  {
    return RedirectToAction("Inscription", "Candidat");
  }
  ViewBag.Poste = _db.Postes.ToList(); // reassign collection for dropdown
  return View(poste);
}