【发布时间】:2013-05-16 16:39:41
【问题描述】:
我有以下 Javascript:
$(document).ready(function () {
$.getJSON("api/products/",
function (data) {
$.each(data, function (key, val) {
// Format the text to display.
var str = val.Name + ': $' + val.Price;
// Add a list item for the product.
$('<li/>', { text: str })
.appendTo($('#products'));
});
});
});
我的问题是产品列表没有显示。我有另一个功能可以搜索列表中的单个项目并且能够显示这些项目,但为什么这不起作用?
这是存储信息的类:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
}
这是控制器:
public class ProductsController : ApiController
{
Product[] products = new Product[]
{
new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 },
new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M },
new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M }
};
public IEnumerable<Product> GetAllProducts()
{
return products;
}
public Product GetProductById(int id)
{
var product = products.FirstOrDefault((p) => p.Id == id);
if (product == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return product;
}
public IEnumerable<Product> GetProductsByCategory(string category)
{
return products.Where(
(p) => string.Equals(p.Category, category,
StringComparison.OrdinalIgnoreCase));
}
}
我是 ASP.NET 的初学者,所以请告诉我我做错了什么。
【问题讨论】:
-
您是否尝试过使用诸如 firebug 之类的工具来确保您实际上是从服务器获取数据?
-
产品是真实的ID吗?你能验证循环正在运行吗?返回的数据是否正确?
-
我验证了循环没有运行,但我在它下面有一个函数,可以通过它们的 ID 调用各个产品,并且似乎工作正常。