gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:57:19 27 4
gpt4 key购买 nike

正如标题所示,我在该任务中正在寻求帮助,我已经阅读了许多有关此任务的教程,但是没有一个可以解决我的问题,即如何从数据库中加载dropdownlistfor。到目前为止,我得到了以下代码:

**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())

然后在您的 Controller 中建立一个像这样的方法
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;
}

希望它会有所帮助。

关于asp.net-mvc-4 - 如何从ASP.NET MVC 4中的数据库填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18963618/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com