0

MVC 5 インターネット アプリケーションをコーディングしていますが、モデルが検証されないとエラーが報告されます。

これは私の作成ビューに次のようなエラーがあります:

タイプ 'System.InvalidOperationException' の例外が System.Web.Mvc.dll で発生しましたが、ユーザー コードで処理されませんでした

追加情報: キー「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 に答える