0

我在我的 asp.net mvc 项目控制器中有一项操作。

public JsonResult GetProductBySearch(string Q)
{
   JsonResult jr = new JsonResult();
   var _product = from a in DataContext.SearchItem(Q)
                  select new { ID = a.ID, ProName = a.Name };
   jr.Data = _product.ToList();
   jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
   return jr;
}

我想将此 json 数据返回到我的项目视图中。如果我使用“select new”,它在我看来效果很好,但据我所知,当我们需要数据子集时,select new 正在使用。但在这个查询中,我想从我的表中获取所有字段,如下所示:

public JsonResult GetProductBySearch(string Q)
{
  JsonResult jr = new JsonResult();
  var _product = from a in DataContext.SearchItem(Q)
                 select a;
  jr.Data = _product.ToList();
  jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
  return jr;
}

这就是我循环查看的内容,如果我与 select new 一起使用,效果会很好。但是当我更改为 SELECT 时,警报不起作用。

 $.getJSON(url, data, function (data) {
     alert(1);
   $.each(data, function (index, proValByDep) {

   });
 });

请有任何想法。

4

2 回答 2

1

为什么使用“从 DataContext.SearchItem(Q) 中的 a 选择 a”?

你不能用jr.Data=DataContext.SearchItem(Q).ToList()

于 2012-04-11T01:57:30.993 回答
1

我只是猜测问题,因为问题有点不清楚。

在第一个示例中,我们看到:

select new { ID = a.ID, ProName = a.Name };

在第二个中,字段名将不一样,因此ProName生成的 json 将具有Name.

ProName可能由于未定义,javascript 正在期待并出错。

这并不能解释为什么alert(1);不起作用。

于 2012-04-11T01:58:07.257 回答