Html.DisplayForModel выбрасывает InvalidOperationException

1

Мой взгляд

@model List<string>
...
@Html.DisplayForModel("Name")
...

Мой шаблон отображения "Имя"

@model string
<span>@Model</span>

Это не работает, я получаю:

Элемент модели, переданный в словарь, имеет тип 'System.Collections.Generic.List 1 [string]', но для этого словаря требуется элемент модели типа 'string' '

Что-то не так я здесь делаю?

  • 1
    Возможная причина: модель == ноль
Теги:
razor
asp.net-mvc

1 ответ

2

Модель вашего первого списка имеет тип List<string> и вы передаете эту модель в шаблон отображения. Но для шаблона отображения требуется модель string типа. Ваш шаблон отображения также должен ожидать список строк:

@model List<string>
@foreach(var item in Model)
{
   <span>@item</span>
}
  • 0
    Я думал, что DisplayFor () может быть использован для отображения списка элементов в модели, как здесь ответили: stackoverflow.com/questions/11261590/mvc-razor-foreach
  • 0
    @santhudr, что если вы измените тип модели представления на IEnumerable<string> а затем @Html.DisplayFor(x => x, "Name") его с помощью @Html.DisplayFor(x => x, "Name") вместо использования @Html.DisplayForModel("Name") ?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню