我正在尝试List<Product>
使用 jquery/ajax 调用从实体框架中获取。这是ajax请求。
$.ajax({
type: "POST",
url: "searchService.asmx/search",
data: "{'lookup':'itemName'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (products) {
// Just printing the result for now.
console.log(products);
}
});
Web服务中的搜索方法实现为:
[WebMethod]
public List<Product> search(string lookup)
{
using (eCommerceDBEntities context = new eCommerceDBEntities())
{
List<Product> pr = context.Products.Where(i => i.ProductName.Contains(lookup)).ToList();
return pr;
}
}
出于某种原因,我在控制台日志中收到 500(内部服务器错误)。
令我惊讶的是,以下代码有效:
[WebMethod]
public List<Product> search(string lookup)
{
using (eCommerceDBEntities context = new eCommerceDBEntities())
{
List<Product> pr = context.Products.Where(i => i.ProductName.Contains(lookup)).ToList();
return new List<Product> {new Product(){
ProductName="abc", ProductPrice=123},
new Product(){
ProductName ="xyz", ProductPrice=321
}
};
}
}
上面的硬编码List<Product>
返回一个不错的对象,但我从数据库查询的对象没有。我会假设无论是硬编码还是从 DB 查询都是一样的。
我是第一次尝试这种方法,所以我可能会在这里做一些可怕的错误。如何从数据库中获取数据?