Передача данных в Razor View в ASP.NET MVC5 - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь изучить ASP.NET и пробую некоторые базовые вещи, такие как передача жестко закодированных данных в представления Razor.

У меня есть простой класс в модели:

public class Customer
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

В моем CustomersController у меня есть этот код: по сути, я просто делаю перечислимый список жестко запрограммированных клиентов, выполняю простой метод get и вызываю этот метод в маршруте get по адресу / Customers

public class CustomersController : Controller
    {
        // GET: Customers
        public ActionResult Index()
        {
            var customers = GetCustomers();

            return View(customers);
        }

        public IEnumerable<Customer> GetCustomers()
        {
            return new List<Customer>
            {
                new Customer
                {
                    Id = 1,
                    Name = "Peter Parker"
                },

                new Customer
                {
                    Id = 2,
                    Name = "Eddie Brock"
                },

                new Customer
                {
                    Id = 3,
                    Name = "Mary Jane"
                },
            };
        }
    }
}

В моем представлении Razor я ввожу модель и пытаюсь просмотреть покупателей и распечатать их в виде списка.Не уверен, что я делаю неправильно, потому что интеллект ничего не поднимет.Я не могу сказать как @ customer.Name в li.И если я наведу курсор мыши на Model.Customer в блоке @foreach, он скажет, что нет определения customer.

@model Vidly.Models.Customer

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<ul>
    @foreach(var customer in Model.Customers)
    {
        <li>@customer</li>
    }
</ul>

1 Ответ

0 голосов
/ 12 июня 2018

Метод GetCustomers() возвращает коллекцию из Customer объектов, и вы передаете эту коллекцию в представление.Таким образом, ваш взгляд должен быть строго типизирован для коллекции Customer объектов.Ваш текущий код говорит, что он ожидает один объект Customer.

Измените его так, чтобы он был строго типизирован для набора Customer объектов, и затем внутри вашего представления вы можете зациклить Model, который является коллекцией( вы можете перебирать коллекцию ).

@model List<Vidly.Models.Customer>    
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<ul>
    @foreach(var customer in Model)
    {
        <li>@customer.Id</li>
        <li>@customer.Name</li>
    }
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...