2012-04-11 32 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