【发布时间】:2010-05-02 21:34:00
【问题描述】:
这个问题与我最近问的另一个问题有关,可以找到here了解一些背景信息。
这是Edit ActionResult中的代码:
public virtual ActionResult Edit(int id)
{
///Set data for DropDownLists.
ViewData["MethodList"] = tr.ListMethods();
ViewData["GenderList"] = tr.ListGenders();
ViewData["FocusAreaList"] = tr.ListFocusAreas();
ViewData["SiteList"] = tr.ListSites();
ViewData["TypeList"] = tr.ListTalkbackTypes();
ViewData["CategoryList"] = tr.ListCategories();
return View(tr.GetTalkback(id));
}
我将列表添加到 ViewData 以在下拉列表中使用,这些都是 IEnumerable 并且都是返回值。
GetTalkback() 返回从 Talkback 表生成的 Talkback 类型的实体框架对象。
DropDownListFor 代码为:
<%: Html.DropDownListFor(model=>model.method_id,new SelectList(ViewData["MethodList"] as IEnumerable<SelectListItem>,"Value","Text",Model.method_id)) %>
我正在查看的记录在所有字段中都有值。当我在视图上单击提交时,我得到一个未设置为对象实例的对象引用。上面一行的错误。
在此之前的表单中有许多标准字段,因此该错误仅发生在下拉列表中,并且在所有下拉列表中都发生。
有什么想法吗?这是我第一次涉足 MVC、C# 和 Entity,所以我完全迷失了!
【问题讨论】:
-
“当我在视图上单击提交时”是什么意思?
-
对不起,如果我不是很清楚。当我调试并导航到编辑视图时,它会显示正确的记录。如果我然后在编辑页面上单击“保存”,则会出现错误。
标签: c# entity-framework asp.net-mvc-2