没有与关键“taskTypes”没有ViewData的项目类型的IEnumerable
问题描述:
我得到添加onchange属性在ASP.NET MVC一个Html.DropDownList当上述错误信息:没有与关键“taskTypes”没有ViewData的项目类型的IEnumerable <SelectListItem>
<td><%= Html.DropDownList("taskTypes", (IEnumerable<SelectListItem>)ViewData["TaskTypes"], "None", new { onchange = "document.getElementById('NewTask').submit()" })%></td>
最初加载视图时,我没有收到错误。只有在选定项目更改后回发。我的控制器代码是:
[AcceptVerbs(HttpVerbs.Get), RequiresAuthentication]
public ActionResult NewTask()
{
List<SelectListItem> dropDownData = new List<SelectListItem>();
List<SelectListItem> statusDropDownData = new List<SelectListItem>();
foreach (TaskStatus t in tasks.GetTaskStatus())
{
statusDropDownData.Add(new SelectListItem { Text = t.Status, Value = t.TaskStatusID.ToString() });
}
foreach (TaskType t in tasks.GetTaskTypes())
{
dropDownData.Add(new SelectListItem { Text = t.Reference, Value = t.TaskTypeID.ToString() });
}
ViewData["TaskStatus"] = statusDropDownData;
ViewData["TaskTypes"] = dropDownData;
if (Request["taskTypes"] != null)
{
string tt = Request["taskTypes"];
}
return View();
}
有谁知道这个问题可能是什么?
感谢
答
的AcceptVerbs对控制器的方法属性表明,它会建立该ViewData的实例,并返回相关的视图来显示您的窗体。您确定负责处理表单提交(或保存数据)的控制器方法是以相同的方式构建该ViewData实例吗?
谢谢,Post方法中有一个错字。 – Paul 2009-06-19 08:32:51