0

我正在编写一个 MVC 5 互联网应用程序,当我的模型未通过验证时会报告错误。

这是我的创建视图中的错误,如下所示:

System.Web.Mvc.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理

附加信息:具有键“assetCategory”的 ViewData 项属于“System.String”类型,但必须属于“IEnumerable”类型。

在这行代码:

@Html.DropDownListFor(m => m.assetCategory, Model.assetCategories, htmlAttributes: new { @class = "form-control" })

以下是相关字段:

public IEnumerable<SelectListItem> assetCategories { get; set; }
public string assetCategory { get; set; }

这是完整的组代码:

<div class="form-group">
    @Html.LabelFor(model => model.assetCategory, null, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.DropDownListFor(m => m.assetCategory, Model.assetCategories, htmlAttributes: new { @class = "form-control" })
        @Html.ValidationMessageFor(model => model.assetCategory, "", new { @class = "text-danger" })
    </div>
</div>

仅当模型未验证时才会发生此错误。如果模型确实验证,则不会发生错误,并且下拉列表已填充,我可以检索assetCategory 字符串中的选定值。

我可以对这段代码有一些帮助吗?

4

1 回答 1

0

确保您没有将 Model.assetCategories 作为 null 传递,您必须确保为该属性加载数据,否则将引发此错误。

于 2014-10-13T10:19:54.203 回答