DropDownListFor with ViewBag getting null

本文关键字:null getting ViewBag with DropDownListFor | 更新日期: 2023-09-27 18:08:54

控制器:

using (ISession session = NHIbernateSession.OpenSession())
    {                
      var item = session.Query<CarModel>().ToList();
      ViewBag.Modas = item;
      return View();
    }

视图:

   <div class="form-group">
                @Html.LabelFor(model => model.Modelis.model_name, new { @class = "control-label col-md-2" })
                <div class="col-md-10">                    
                    @Html.DropDownListFor(model => model.Modelis.Id, new SelectList(ViewBag.Modas, "Id", "model_name"), "--Select Cars--")                       
                </div>
            </div>

控制器(submition部分):

[HttpPost]
public ActionResult Create(Transport item)
{
    try
    {
        using (ISession session = NHIbernateSession.OpenSession())
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                session.Save(item);
                transaction.Commit();
            }
        }
        return RedirectToAction("Index");
    }
    catch (Exception exception)
    {
        return View();
    }
}

And I get error on submit:

Value不能为空。参数名称:items

描述:当前web请求执行过程中出现未处理的异常。请查看堆栈跟踪以获得有关错误及其在代码中的起源位置的更多信息。

Exception Details: System。ArgumentNullException:值不能为空。参数名称:items

我不明白是怎么回事

DropDownListFor with ViewBag getting null

参考您提交的代码,似乎您正在使用MVC的强类型视图。在这种情况下,您应该向视图提供模型。在没有提供或分配模型的情况下返回视图。因此,你的视图有模型为空。请提供型号并检查执行情况。

using (ISession session = NHIbernateSession.OpenSession())
    {                
      var item = session.Query<CarModel>().ToList();
      ViewBag.Modas = item;
      // Either set the model like .... ViewData.Model = new YOUR_MODEL_CLASS();
     // OR return your model by view constructor like.. return View(new YOUR_MODEL_CLASS());
      return View();
    }