编程语言
首页 > 编程语言> > c#-没有ViewData项,其键“ taskTypes”的类型为IEnumerable

c#-没有ViewData项,其键“ taskTypes”的类型为IEnumerable

作者:互联网

将onchange属性添加到ASP.NET MVC中的Html.DropDownList时,出现上述错误消息:

<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实例并返回关联的View以显示您的表单.您确定负责处理表单提交(或保存数据)的控制器方法以相同的方式构建该ViewData实例吗?

标签:drop-down-menu,c,asp-net-mvc
来源: https://codeday.me/bug/20191210/2102820.html