0

asp.net mvc プロジェクトのコントローラーに 1 つのアクションがあります。

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データをプロジェクトのビューに戻したいです。「select new」を使用した場合、私の見解ではうまく機能しますが、知っているように、select 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 new で使用すると非常にうまく機能します。しかし、SELECT に変更すると、アラートが機能しません。

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

   });
 });

アイデアをください。

4

2 に答える 2

1

なぜ "from a in DataContext.SearchItem(Q) select a" を使用するのですか?

使えませんかjr.Data=DataContext.SearchItem(Q).ToList()

于 2012-04-11T01:57:30.993 に答える
1

質問が少し不明確なので、問題を推測するだけです。

最初の例では、次のことがわかります。

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

2 番目のフィールド名は同じではないためProName、結果の json の代わりにName.

おそらく、javascript はProName未定義であるため、期待してエラーを出しています。

ただし、これはなぜ機能しないのかを説明しalert(1);ていません。

于 2012-04-11T01:58:07.257 に答える