2012-04-11 31 views
0

我在asp.net mvc项目的控制器中有一个动作。在linq c中选择新的#

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数据返回到我的项目视图。如果我使用“选择新的”,它在我看来是很好的,但是据我所知,当我们需要数据的子集时,选择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时,警报不起作用。

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

    }); 
}); 

任何想法请。

+2

写'从x选择x'没有意义。 – SLaks 2012-04-11 01:50:02

+1

提供更多的信息,而不仅仅是“它不工作”将是非常有用的。 – dasblinkenlight 2012-04-11 01:50:03

+0

你会得到什么错误? – SLaks 2012-04-11 01:50:10

回答

1

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

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

1

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

在第一例子中,我们看到:

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

在第二个中的字段名不会是相同的,所以不是ProName生成的JSON将具有Name

也许javascript期待ProName和错误,因为它是未定义的。

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

+0

但在我的错误控制台中,它不显示错误。 – Nothing 2012-04-11 02:07:15

+0

问题中显示的JavaScript是否显示在您的网页上的实际JavaScript? – joshuahealy 2012-04-11 02:16:58

+0

是的,它在我的asp.net mvc项目中。 – Nothing 2012-04-11 02:21:24