ASP.NET MVC: передать список объектов из контроллера в представление

Итак, этот фрагмент кода - мой класс Controller. Отправляю список книг на View

public class BooksController : Controller
{
     public ActionResult Index(int page = 0)
     {
          List<Book> data = BookRepository.GetInstance().getAllBooks();
          return this.View(data);
     }
}

Итак, я написал это сверху, ссылаясь на класс модели

@model BookStore.Models.Book

Когда я пытаюсь выполнить итерацию, как в приведенном ниже коде, он говорит, что он не содержит общедоступного экземпляра для GetEnumerator, но я вернул список объектов, как мне получить доступ к каждому объекту в списке в цикле for?

<ul>
   @foreach(var book in Model)
   {

   }
</ul>

Ваша модель должна быть списком книг, а не отдельной книгой. Невозможно перебрать один элемент. Попробуйте @model List <BookStore.Models.Book>

baileyrt 15.12.2018 03:09

Да! Это сработало, большое спасибо!

MrRobot9 15.12.2018 03:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
3 672
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проблема в следующей строке:

@model BookStore.Models.Book

Вы передаете List<Book> из контроллера в представление, но тип модели вашего представления - Book. Поэтому напишите приведенную выше строку следующим образом:

@model List<BookStore.Models.Book>

Вы передаете список объектов из контроллера для просмотра, поэтому вы должны использовать ключевые слова IEnumerable или Список или IList в вашем представлении. ТАК, вы можете использовать следующие способы.

@model IEnumerable<BookStore.Models.Book>

ИЛИ

@model IList<BookStore.Models.Book>

ИЛИ

@model List<BookStore.Models.Book>

Надеюсь, это сработает.

Другие вопросы по теме