タイトルがそのタスクの助けを求めていると言っているように、私はそれについて多くのチュートリアルを読みましたが、どれも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
動作しますが、フォームを送信すると次のメッセージが表示されます。
キー「DistritoCliente」を持つタイプ「IEnumerable」の ViewData アイテムはありません。
私が間違っていること、またはこの問題をどのように解決できるかについてのアイデア。
前もって感謝します。
アレックス