MVC - 没有类型为'IEnumerable'的ViewData项具有键'*******'

时间:2012-07-20 15:01:40

标签: asp.net-mvc-4 viewdata

这让我烦恼。它完全适用于负载,如果我完成表单并提交它。但是,如果我没有更新任何值,因此应该由于空值而生成验证错误,它会显示以下错误。

  • $ exception {“没有类型'IEnumerable'的ViewData项具有键'TenantType'。”} System.Exception {System.InvalidOperationException}

错误是正确的,没有与下拉列表同名的viewdata。下拉列表是通用的,所以我分享了它们,即。有些人有/不。为什么当我明确指出别的东西时,它要求与控件同名的viewdata?

查看提取

    <div class="editor-field">
    @Html.DropDownList("TenantType", ViewData["list7"] as SelectList)
    </div>
    @Html.ValidationMessageFor(model => model.TenantType)

控制器提取

        var list7 = new SelectList(new[]
                                      {
                                          new {ID="",Name="Please Select"},
                                          new {ID="Professional",Name="Professional"},
                                          new {ID="Student",Name="Student"},
                                          new {ID="DSS Family",Name="DSS Family"},
                                          new {ID="DSS Individuals",Name="DSS Individuals"},
                                          new {ID="Local Authority",Name="Local Authority"},
                                          new {ID="Holiday Home",Name="Holiday Home"},
                                          new {ID="Asylum Seekers",Name="Asylum Seekers"},
                                      }, "ID", "Name", 1);
        ViewData["list7"] = list7;
  • $ exception {“没有类型'IEnumerable'的ViewData项具有键'TenantType'。”} System.Exception {System.InvalidOperationException}

1 个答案:

答案 0 :(得分:0)

检查此链接

ViewBag/ViewData Lifecycle

在控制器操作模型无效后,您是否再次设置了ViewData [“list7”]?