2012-02-14 16 views
1

jQueryを使用して自分の行動を消費しています。今List <>をJsonResultで返す

$.ajax({ url: '', 
      data: 'json', 
      type: 'post', 
      dataType: options.dataType, 
      async: false, 
      success: function (obj) { returnValue = obj; } 
     }); 

....

私はこの1つを返す場合...

var test1 = Json(new { Message = "Any message here.", Status="True" }); 

私のAjax呼び出しのリターンだけで罰金..です

BUT ..場合私はこれを返す(EFからのユーザリスト)

var test2 = Json(IoC.Resolve<IUserService>().GetUsers()); 

私は未定義/ 500(内部サーバーエラー)を取得します。

これで、jQueryのAjaxで正しく読み込むことができるように、オブジェクトからJSONを正しく返す方法が問題です。前

var test2 = Json(IoC.Resolve<IUserService>().GetUsers()); 

をしてコメントをするつもりはない:

おかげ

+0

吹くかもしれません – jcvegan

+0

これは重複している可能性があります:http://stackoverflow.com/questions/3113952/asp-net-mvc-jsonresult-return-500 –

+1

IoC.Resolve ()とは何ですか?GetUsers()は実際に戻りますか? varを使用しているので、JSONに変換しようとしているデータ型は返されません。 –

答えて

1

リー、

は、使用状況を見たことがありません。ただし、単にすなわち、statamentの最後に.ToListを()を追加して逃げることがあります。

var test2 = Json(IoC.Resolve<IUserService>().GetUsers().ToList()); 

問題の理由は、あなたがまだ出てオブジェクトを列挙していないという事実によるものですjsonオブジェクトにデータを入力しようとする前に、あらゆる種類の待ち時間とオブジェクト参照の問題が発生します。 ToList()を追加することで、Json()メソッドにヒットする前にオブジェクトが完全に列挙されるため、これらの問題を緩和できます。

それはちょうど私が同じ問題を抱えていたし、リストがスローを渡すことがlongになるためである、仕事...または右に:)

0
public ActionResult MethodName(){ 
var returnList = IoC.Resolve<IUserService>().GetUsers().ToList(); 
retun JSON(returnList,JSONRequestBehaviour.AllowGet); 
} 

jQueryの機能

success: function (obj) { 
alert(obj.d.ListProperty); 
// you can access all the properties you have in the list. 
} 
関連する問題