J'essaie de remplir une liste déroulante à partir d'une base de données mappée avec Linq-2-SQL, en utilisant ASP.NET MVC 2, et continue à obtenir cette erreur.
Je suis tellement confus parce que je déclare une variable de type IEnumerable<SelectListItem>
sur la deuxième ligne, mais l'erreur me fait penser que ce n'est pas le cas. Je pense que cela devrait être très simple, mais je me bats. Toute aide est appréciée.
Voici les éléments intéressants de mon contrôleur:
public ActionResult Create()
{
var db = new DB();
IEnumerable<SelectListItem> basetypes = db.Basetypes.Select(
b => new SelectListItem { Value = b.basetype, Text = b.basetype });
ViewData["basetype"] = basetypes;
return View();
}
Et voici les éléments intéressants de mon point de vue:
<div class="editor-label">
<%: Html.LabelFor(model => model.basetype) %>
</div>
<div class="editor-field">
<%: Html.DropDownList("basetype") %>
<%: Html.ValidationMessageFor(model => model.basetype) %>
</div>
Voici l'action POST lors de la soumission du formulaire
// POST: /Meals/Create
[HttpPost]
public ActionResult Create(Meal meal)
{
if (ModelState.IsValid)
{
try
{
// TODO: Add insert logic here
var db = new DB();
db.Meals.InsertOnSubmit(meal);
db.SubmitChanges();
return RedirectToAction("Index");
}
catch
{
return View(meal);
}
}
else
{
return View(meal);
}
}
Merci.