代码之家  ›  专栏  ›  技术社区  ›  J.G.Sable

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

  •  1
  • J.G.Sable  · 技术社区  · 6 年前

    我有一个简单的模型类:

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

    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"
                    },
                };
            }
        }
    }
    

    在我看来,我引入了模型,并尝试循环浏览客户并将他们打印到一个列表中。不知道我做错了什么,因为英特伦斯不会提出任何问题。我不能在li中说like@customer.name。如果我将鼠标悬停在模型上,@foreach块中的customer,它表示没有定义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 回复  |  直到 6 年前
        1
  •  3
  •   Shyju    6 年前

    这个 GetCustomers() 收集 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>