Исключение представления MVC возникает только в том случае, если состояние модели недопустимо.

Я кодирую интернет-приложение MVC 5, и появляется сообщение об ошибке, когда моя модель не проверяется.

Это ошибка в моем представлении создания следующим образом:

Исключение типа «System.InvalidOperationException» возникло в System.Web.Mvc.dll, но не было обработано в пользовательском коде.

Дополнительная информация. Элемент ViewData с ключом «assetCategory» имеет тип «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>

Эта ошибка возникает только в том случае, если модель не проходит проверку. Если модель проходит проверку, ошибки не возникает, раскрывающийся список заполняется, и я могу получить выбранное значение в строке assetsCategory.

Могу ли я получить некоторую помощь с этим кодом?


person user3736648    schedule 13.10.2014    source источник
comment
Вы не показали свой код контроллера, но когда вы возвращаете представление, если оно недействительно, переназначили ли вы SelectList для model.assetCategories?   -  person    schedule 13.10.2014
comment
Спасибо, Стивен, это все, что мне нужно было сделать.   -  person user3736648    schedule 13.10.2014


Ответы (1)


Убедитесь, что вы не передаете Model.assetCategories как null, вы должны убедиться, что данные загружены для этого свойства, иначе возникнет эта ошибка.

person Venkat    schedule 13.10.2014