2017-09-22 7 views
-2

私はSystem.Linq.Dynamicを使用して動的テーブル、列、および値を検索しています。結果は正しい値を返します。問題は、なぜ私はその前にJsonとしてvarを返すことができないのか、そして私は他の動的な検索と同じように返すことができないのか分かりません。動的検索を行っていなくても、Jsonとして結果クエリオブジェクトをフロントエンドに渡すことができません。System.Linq.Dynamicは、動的テーブル検索のオブジェクトコレクションのJsonを返します。結果はステータスが500(内部サーバーエラー)です。

using (db) 
{ 
    var res = context.Sets(table_name) 
          .AsQueryable() 
          .Where(where, part_search) 
          .Select("new(item1, item2, item3)").Take(50); 
    return Json(res); 
} 

POST http://localhost:52498/Controller/Action 500(内部サーバーエラー)

はヘルプをお願い申し上げます。

+1

おそらくデバッグサーバー側とエラーが表示されますか? –

+0

エラーはありません。 var test = Json(res)として保存しました。次に、var testをstringtesttestにシリアル化します。その後、Json(stringtest)を返しました。それは働いた。私はすべてのオブジェクトの配列(トップ50)が必要ですが、これは問題です。これは最後の結果のみを返します。そして、私はオブジェクトのコレクションを反復したくありません。だから問題が何かを理解する必要があります。 – fazic

答えて

0

私はなぜそれは私をさせないのか分かりませんが、私は回避しました。私は結果をJsonオブジェクト(これは直接送信された場合500エラーが返されます)としてフォーマットし、それをシリアル化して文字列にしてから、それをJsonに戻します。冗長なようだ...

asp.NET MVCコントローラ:

JavaScriptSerializer ser = new JavaScriptSerializer(); 
var resJson= Json(res); 
string resJsonString= ser.Serialize(resJson.Data); 
return Json(resJsonString); 

これが働いており、フロントエンドは、しかし、私が望む形式でないPOSTアヤックスからデータを受け取ります。だから、私は単純に長いJson文字列である文字列を解析した。それは、私が望むように配列とキーを持つJsonオブジェクトを与えた。それが他の方法と同じようにこの方法ではなく、直接的には機能しない理由は考えられません。

asp.net MVCビュー:誰かが私にそれを説明することができた場合は

$.ajax({ 
    type: "POST", 
    url: "/Controller/Action", 
    data: {data: "search"}, 
    success: function(data){ 
     var data = JSON.parse(data) 
     var keys = Object.keys(data[0]) 
    } 
}) 

私はそれをお願い申し上げます。 ありがとうございます

関連する問題