我正在尝试学习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>
答案 0 :(得分:3)
GetCustomers()
方法返回{strong>集合的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>