我正在尝试使用MVC4从DropDownList中的表填充数据。试图弄清楚如何在“编辑”模式下将所有语言的标题带入DropDown。
楷模:
public class CategoryLanguage
{
public int ID { get; set; }
public int LanguageID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
public class Language
{
public int ID { get; set; }
public string Title { get; set; }
}
控制器:
public ActionResult Create()
{
using (MyDBContext db = new MyDBContext())
{
ViewBag.ID = new SelectList(db.Languages, "ID", "Title");
return View();
}
}
//
// POST: /Emp/Create
[HttpPost]
public ActionResult Create(CategoryLanguage newCatLang)
{
using (MyDBContext db = new MyDBContext())
{
if (ModelState.IsValid)
{
db.CategoryLanguages.Add(newCatLang);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.ID = new SelectList(db.Languages, "ID", "Title", newCatLang.LanguageID);
return View(newCatLang);
}
}
视图:
@model MultilanguageCategories.CORE.Models.CategoryLanguage
@{
ViewBag.Title = "Create";
}
<h2>Add New Item</h2>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
@Html.DropDownList("ID", "--Select--")
}
试图弄清楚如何在创建新的CategoryLanguage实体时将所有语言的标题放入DropDown。该错误表明:“由于DbContext已被处置,因此操作无法完成。” 并且此行标记为:@ Html.DropDownList(“ ID”,“ --Select--”)
如下所述更改您的get方法“ Create”:
public ActionResult Create()
{
var languages = new List<Language>();
using (MyDBContext db = new MyDBContext())
{
languages = db.Languages.ToList();
}
ViewBag.ID = new SelectList(languages, "ID", "Title");
return View();
}
现在,您可以使用DropDownListFor,如下所述:
@Html.DropDownListFor(model => model.[PropertyName], (IEnumerable<SelectListItem>)ViewBag.ID)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句