2012-04-11 16 views
0

私はasp.net mvcプロジェクトのコントローラに1つのアクションを持っています。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データをプロジェクトのビューに戻したいとします。私が "新しいものを選択"したの​​は私の見解ではうまくいきますが、私が知っているように、新しいものはデータのサブセットが必要な時に使うことを選択します。しかし、このクエリでは、私は以下のように私のテーブルからすべてのフィールドを取得したい:

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; 
} 

これは、それは非常によく、私が選択し、新規で使用した場合の仕事が何であるかをIループビューです。 しかし、SELECTに変更するとアラートは機能しません。

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

    }); 
}); 

お願いします。

+2

「x in y select x'」と書くことに意味がありません。 – SLaks

+1

ちょうど "それはうまくいかない"という情報よりも多くの情報を与えることは非常に役に立ちます。 – dasblinkenlight

+0

どのようなエラーが表示されますか? – SLaks

答えて

1

「from a from DataContext.SearchItem(Q)select a」を使用する理由は?

あなたは私だけの質問は少し不明確であるなどの問題を推測するつもりだjr.Data=DataContext.SearchItem(Q).ToList()

1

を使用することはできません。フィールド名が同じでないので、代わりProNameから得られたJSONはNameを有することになる第一

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

:我々が見る最初の例で

JavaScriptがおそらくProNameを予期していて、定義されていないためにエラーが発生している可能性があります。

これはなぜalert(1);が機能しないのか説明しません。

+0

しかし、私のエラーコンソールでは、エラーは表示されません。 – Nothing

+0

質問に表示されるjavascriptはウェブページの実際のjavascriptですか? – joshuahealy

+0

確かに、それはasp.net mvcプロジェクトの私の見解です。 – Nothing