Как поместить переменные в объект внутри списка - PullRequest
0 голосов
/ 22 мая 2019

Итак, я создаю таблицу для вывода значений данных моей базы данных.В процессе я смог вывести, но только первую запись.Затем я искал его и заметил, что мне нужно составить список для хранения всех данных, и теперь я застрял.Я уверен, что все просто, но я только начинаю

Я хотел сделать это:

List<EmployeeViewModel> EmployeeVM = new List<EmployeeViewModel>
{
    MovieID = movie.MovieID,
    MovieName = movie.MovieName,
    MovieDescription = movie.MovieDescription,
    MoviePrice = movie.MoviePrice,
    MovieCategory = movie.MovieCategory,
    MovieYear = movie.MovieYear
};

return View(EmployeeVM);

, чтобы я мог выводить так:

<table class="table table-bordered table-responsive table-hover">
    <tr>
        <th><b>Movie Name </b></th>
        <th><b>Movie Category </b></th>
        <th><b>Movie Year </b></th>
        <th><b>Movie Price</b></th>

    </tr>
    @foreach (EmployeeViewModel item in EmployeeVM)
    {
        <tr>
            <td>@Model.MovieName</td>
            <td>@Model.MovieCategory</td>
            <td>@Model.MovieYear
            <td>@Model.MoviePrice</td>

        </tr>
    }
</table>

«Список» не содержит определения для «MovieName»

«Не удалось найти тип или имя пространства имен EmployeeViewModel (отсутствует директива using или ссылка на сборку?)»

Ответы [ 4 ]

2 голосов
/ 22 мая 2019

, если вы используете цикл foreach, поэтому вы должны использовать объект item.

@foreach (EmployeeViewModel item in EmployeeVM)
{
    <tr>
        <td>@item.MovieName</td>
        <td>@item.MovieCategory</td>
        <td>@item.MovieYear
        <td>@item.MoviePrice</td>
    </tr>
}
1 голос
/ 22 мая 2019

В вашем коде есть две разные проблемы.

  1. «Список» не содержит определения для «MovieName»

    • Здесь у вас есть список EmployeeViewModel, поэтому вам нужно добавить в список экземпляры EmployeeViewModel.

что-то вроде,

List<EmployeeViewModel> EmployeeVM = new List<EmployeeViewModel>

foreach(var movie in movies)
{
  var temp =     new EmployeeViewModel {
        MovieID = movie.MovieID,
        MovieName = movie.MovieName,
        MovieDescription = movie.MovieDescription,
        MoviePrice = movie.MoviePrice,
        MovieCategory = movie.MovieCategory,
        MovieYear = movie.MovieYear
    };

EmployeeVM.Add(temp);
}

Если у вас есть только одна запись Movie, то напрямую используйте модель одного вида Employee

  1. "Не удалось найти тип или имя пространства имен EmployeeViewModel (отсутствует директива using или ссылка на сборку?)"

Для этой проблемы вам нужно импортировать библиотеку, где вы определили EmployeeViewModel.

что-то вроде

using Stackoverflow.Sample.EmployeeViewModel;

где Stackoverflow.Sample - ваш проект, EmployeeViewModel - ваш класс

0 голосов
/ 22 мая 2019

Ваш список представляет собой список EmployeeViewModel , поэтому вам нужно выполнить инициализацию, как показано ниже

List<EmployeeViewModel> EmployeeVM = new List<EmployeeViewModel>
        {   new EmployeeViewModel()
            {
                MovieID = movie.MovieID,
                MovieName = movie.MovieName,
                MovieDescription = movie.MovieDescription,
                MoviePrice = movie.MoviePrice,
                MovieCategory = movie.MovieCategory,
                MovieYear = movie.MovieYear
            }
        };
0 голосов
/ 22 мая 2019

Вы должны создать экземпляры EmployeeViewModel внутри инициализатора списка:

List<EmployeeViewModel> EmployeeVM = new List<EmployeeViewModel>
{
    new EmployeeViewModel {
        MovieID = movie.MovieID,
        MovieName = movie.MovieName,
        MovieDescription = movie.MovieDescription,
        MoviePrice = movie.MoviePrice,
        MovieCategory = movie.MovieCategory,
        MovieYear = movie.MovieYear
    },
    ///other list items
};

Также вы должны использовать @item (не @Model) внутри каждой итерации:

@foreach (EmployeeViewModel item in Model)
{
    <tr>
        <td>@item.MovieName</td>
        <td>@item.MovieCategory</td>
        <td>@item.MovieYear
        <td>@item.MoviePrice</td>
    </tr>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...