加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – 如何在ASP.NET MVC 4中从数据库填充下拉列表

发布时间:2020-12-16 00:19:25 所属栏目:asp.Net 来源:网络整理
导读:正如标题所说,我正在寻找这项任务的一些帮助,我已经阅读了很多关于它的教程,但没有一个可以解决我的问题,即如何从数据库加载dropdownlist.到目前为止,我得到了以下代码: **LNClientes():**public ListENDistrito DistritoListar(){ return new ADClientes()
正如标题所说,我正在寻找这项任务的一些帮助,我已经阅读了很多关于它的教程,但没有一个可以解决我的问题,即如何从数据库加载dropdownlist.到目前为止,我得到了以下代码:
**LNClientes():**

public List<ENDistrito> DistritoListar()
{
    return new ADClientes().DistritoListar();
}

**ADClientes():**

public List<ENDistrito> DistritoListar()
        {
            Database oDatabase =                      DatabaseFactory.CreateDatabase(ConfigurationManager.AppSettings["conexionBD"]);
            DbCommand odbcommand = oDatabase.GetStoredProcCommand("USP_SEL_DISTRITOS");

            List<ENDistrito> lista = new List<ENDistrito>();
            using (IDataReader reader = oDatabase.ExecuteReader(odbcommand))
            {
                while (reader.Read())
                    lista.Add(new ENDistrito(reader));
            }
            return lista;
        }

**Controller:**

 public ActionResult Registrar()
        {
            ViewBag.Message = Resources.Language.Title_Page_MC_C;
            var ListaDistrito = new LNClientes().DistritoListar();
            ViewBag.ObtenerDistrito = new SelectList(ListaDistrito,"IdDistrito","DescripcionDistrito");
            return View();
        }

视图:

<div class="editor-field">
            @Html.EditorFor(model => model.DistritoCliente)
            @Html.DropDownListFor(model => model.DistritoCliente,(SelectList)ViewBag.ObtenerDistrito,"--Seleccione--")
            @Html.ValidationMessageFor(model => model.DistritoCliente)
        </div>

直到这一点一切正常,当我打开该表格的dropdownlistfor工作,但当我提交表格时,我收到以下消息:

There is no ViewData item of type ‘IEnumerable’ that
has the key ‘DistritoCliente’.

关于我做错了什么或者我怎么能解决这个问题的任何想法.

提前致谢.

亚历克斯

解决方法

我通常如何建立我的下拉菜单是这样的
@Html.DropDownListFor(x => x.Field,PathToController.GetDropDown())

然后在你的控制器中有一个像这样构建的方法

public static List<SelectListItem> GetDropDown()
    {
        List<SelectListItem> ls = new List<SelectListItem>();
        lm = (call database);
        foreach (var temp in lm)
        {
            ls.Add(new SelectListItem() { Text = temp.name,Value = temp.id });
        }
        return ls;
    }

希望它有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读