我有一个名为Product
的Model类和一个名为ProductController
的控制器类,其中我只有一个方法。
模型类
public class Product
{
public int Id { set; get; }
public string Name { set; get; }
public string Category { set; get; }
public Double Price { set; get; }
}
控制器类
public List<Product> Get()
{
Product product_1 = new Product();
product_1.Id = 01;
product_1.Name = "Car";
product_1.Category = "Toy";
product_1.Price = 100 ;
Product product_2 = new Product();
product_2.Id = 02;
product_2.Name = "Bike";
product_2.Category = "Toy";
product_2.Price = 50;
List<Product> list = new List<Product>();
list.Add(product_1);
list.Add(product_2);
return list;
}
运行时,它会在浏览器中显示所有产品数据。但我只想让它返回一个结果。
答案 0 :(得分:0)
如果您只希望它显示单个产品的数据,那么您需要让您的操作方法接受一个参数,告诉您要显示哪个产品,并且您需要返回单个产品。您还需要调整路由以期望参数。
通过使用Linq的Single()扩展方法,我们可以同时过滤结果并检索单个产品。
public Product Get(int id)
{
var product = GetAllProducts().Single(p => p.Id == id);
return product;
}
//this would normally be part of your data layer rather than in the controller
private List<Product> GetAllProducts()
{
Product product_1 = new Product();
product_1.Id = 01;
product_1.Name = "Car";
product_1.Category = "Toy";
product_1.Price = 100 ;
Product product_2 = new Product();
product_2.Id = 02;
product_2.Name = "Bike";
product_2.Category = "Toy";
product_2.Price = 50;
List<Product> list = new List<Product>();
list.Add(product_1);
list.Add(product_2);
return list;
}
您可能需要根据客户要求不存在的特定ID的情况进行必要的调整。