Sibeesh Passion Ответов: 3

Передайте Список для просмотра в MVC


Привет,
Я передаю список значений в свое представление. Но я получаю ошибку типа "элемент модели, переданный в словарь, имеет тип 'System.Коллекции.Универсальный.Список". Вот мое действие контроллера:
public ActionResult Index()
       {
           Test t = new Test();
           List<Customer> myList= t.GetData();
           return View(myList);
       }

Вот такой вид:
@model List<AsyncActions.Models.Test>
    @{
      ViewBag.Title = "Index";
    }

    <h2>Index</h2>
    <table border="1" cellpadding="4">
        @foreach (var row in Model)
        {
        <tr>
            @*<td>@row."CustomerID"</td>
            <td>@row."CustomerCode"</td>*@
        </tr>
    }
</table>

Я уже пробовал удалить List< gt; из поля зрения. Когда я это делаю, я получаю ошибку, так как "оператор foreach не может работать с переменными типа 'AsyncActions.Модели.Тест" потому что " AsyncActions.Модели.Тест не содержит общего определения для 'метод getenumerator". Я перепробовал так много мыслей. Я проверил это ссылка но это не решило моей проблемы. Я не могу понять, что же я упустил. Любая помощь очень ценится.

3 Ответов

Рейтинг:
2

Saillesh

@model IEnumerable<MvcApplication1.Models.Customer>

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        
         <table border="1">
        <tr>
            <th>
                CustomerCode
            </th>
            <th>
         CustomerId  
            </th>
        </tr>
        
            @foreach (var row in Model)
        {
                <tr>
            <th>@row.CustomerCode<br/></th>
            <th>@row.CustomerId<br/></th>
        </tr>
    }
            
             </table>
    </div>
</body>
</html>


Member 14649820

Я сделал список вопросов и ответов моего онлайн-экзаменационного проекта.Как отобразить метку в поле зрения?

Рейтинг:
1

F-ES Sitecore

Ваш взгляд имеет это как тип модели

@model List<AsyncActions.Models.Test>


но вы передаете это как модель

List<Customer>


Тип модели в вашем представлении должен соответствовать тому, что передается, поэтому он должен быть

@model List<Customer>


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


Рейтинг:
0

Snesh Prajapati

Как уже упоминалось в приведенном выше ответе, нижеприведенная строка может работать:

@model List<Customer>

Более конкретно, это должно быть что-то вроде:
@модель
"IEnumerable или список или точный тип коллекции, который вы передаете из действия"
&низкотемпературный;"Полное имя класса в коллекции или использовать имя класса с помощью оператора using вверху">

Если вам нужен рабочий пример, взгляните на строку, взятую из примера кода, приведенного по адресу:
Несколько моделей в представлении in ASP.NET MVC 4 / MVC 5[^]
@model  IEnumerable <MultipleModelDemo.Models.Student>


Спасибо.