【问题标题】:Passing data to Razor View in ASP.NET MVC5在 ASP.NET MVC5 中将数据传递给 Razor 视图
【发布时间】:2018-06-12 02:17:03
【问题描述】:

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

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

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

在我的 CustomersController 中,我有以下代码:基本上,我只是制作一个可枚举的硬编码客户列表,执行一个简单的 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>

【问题讨论】:

    标签: c# asp.net-mvc razor


    【解决方案1】:

    GetCustomers() 方法返回Customer 对象的collection,并且您正在将该collection 传递给视图。所以你的视图应该被强类型化到集合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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 2015-02-06
      • 2019-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多