猿问

在 ASP.NET MVC5 中将数据传递给 Razor 视图

我正在尝试学习 ASP.NET 并尝试一些基本的东西,比如将硬编码数据传递给 Razor 视图。


我在模型中有一个简单的类:


public class Customer

    {

        public int Id { get; set; }

        public string Name { get; set; }

    }

在我的客户控制器中,我有这样的代码: 基本上,我只是制作一个可枚举的硬编码客户列表,执行一个简单的 get 方法并在 /customers 的 get 路由中调用该方法


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 视图中,我引入模型并尝试遍历客户并将它们打印在列表中。不确定我做错了什么,因为智能不会提出任何问题。我不能在 li 中说像 @customer.Name。如果我将鼠标悬停在 @foreach 块中的 Model.Customer 上,它会说没有客户的定义。


@model Vidly.Models.Customer


@{

    ViewBag.Title = "Index";

    Layout = "~/Views/Shared/_Layout.cshtml";

}


<ul>

    @foreach(var customer in Model.Customers)

    {

        <li>@customer</li>

    }

</ul>


慕尼黑的夜晚无繁华
浏览 190回答 1
1回答

烙印99

该GetCustomers()方法返回一个对象集合,Customer您将该集合传递给视图。所以你的视图应该是强类型的集合Customer对象。您当前的代码说它需要一个 Customer 对象。将其更改为强类型Customer对象集合,然后在您的视图中,您可以循环Model,它是一个集合(您可以遍历一个集合)。@model List<Vidly.Models.Customer>&nbsp; &nbsp;&nbsp;@{&nbsp; &nbsp; ViewBag.Title = "Index";&nbsp; &nbsp; Layout = "~/Views/Shared/_Layout.cshtml";}<ul>&nbsp; &nbsp; @foreach(var customer in Model)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; <li>@customer.Id</li>&nbsp; &nbsp; &nbsp; &nbsp; <li>@customer.Name</li>&nbsp; &nbsp; }</ul>
随时随地看视频慕课网APP
我要回答