【发布时间】:2014-01-31 10:59:55
【问题描述】:
我正在尝试使用 MVC4 从 DropDownList 中的表中填充数据。试图弄清楚如何在编辑模式下将所有语言的标题放入下拉菜单。
型号:
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--")
【问题讨论】:
-
而不是
ViewBag尝试将其保存在Model -
你能给我一个样品吗?
-
在
Model中添加一个字段选择列表字段,然后像这样尝试Model.ID=Select... -
@Nilesh:你能说得更清楚些吗?
-
@StiliyanVasilev:检查我的答案。也许它可以帮助您解决问题。
标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-4