1

コントローラからjsonリストを送信しています:

 public ActionResult LoadTree()
        {

            List<ListItem> list = new List<ListItem>() {
                new ListItem() { Text = "Keyvan Nayyeri" },
                new ListItem() { Text = "Simone Chiaretta" },
                new ListItem() { Text = "Scott Guthrie" },
                new ListItem() { Text = "Scott Hanselman" },
                new ListItem() { Text = "Phil Haack" },
                new ListItem() { Text = "Rob Conery" }
            };

            return new JsonResult { Data = list };
        }

以下を使用して、私のビューでリストを取得しようとしています。

var text =
            $.ajax({
                url: '/CourseCases/LoadTree',
                dataType: 'json',
                 data: {     },
                cache: false,
                type: 'GET',
                success: function (data) {

                }
            });
            alert(text);

[オブジェクトオブジェクト]を取得します。オブジェクトの実際の値を取得するにはどうすればよいですか?前もって感謝します。

4

4 に答える 4

0

まず、 で を設定する必要がJsonRequestBehavior = JsonRequestBehavior.AllowGetありJsonResultます。

    public ActionResult LoadTree()
    {
      List<ListItem> list = new List<ListItem>() {
                new ListItem() { Text = "Keyvan Nayyeri" },
                new ListItem() { Text = "Simone Chiaretta" },
                new ListItem() { Text = "Scott Guthrie" },
                new ListItem() { Text = "Scott Hanselman" },
                new ListItem() { Text = "Phil Haack" },
                new ListItem() { Text = "Rob Conery" }
            };

      return new JsonResult { Data = list, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
    }

    <script type="text/javascript">
      $.ajax({
        url: '/Home/LoadTree',
        dataType: 'json',
        data: {},
        cache: false,
        type: 'GET',
        success: function (data) {
          alert(data.length); // 6
          // do whatever with the data
        }
      });
    </script>
于 2012-05-22T14:16:01.237 に答える
0

成功関数では、json を解析して実際のデータを取得する必要があります。

var jsObject = JSON.parse(data);

jsObject.List[0].Text などの各項目にアクセスします

于 2012-05-22T07:20:06.797 に答える
0

function $.ajax() server から値を返さないため、機能しませんvar text = $.ajax()。代わりに成功ハンドラーを見る必要があります

success: function (data) {
    // data is the result of your ajax request
}

jQuery.Ajaxで詳細を読むことを強くお勧めします

success(data, textStatus, jqXHR) リクエストが成功した場合に呼び出される関数。この関数には 3 つの引数が渡されます。dataType パラメータに従ってフォーマットされた、サーバーから返されたデータ。ステータスを説明する文字列。jqXHR (jQuery 1.4.x では XMLHttpRequest) オブジェクト。jQuery 1.5 の時点で、success 設定は関数の配列を受け入れることができます。各関数が順番に呼び出されます。これは Ajax イベントです。

于 2012-05-22T07:13:14.777 に答える
0

ここで簡単な問題。コントローラーでは、実際にはリストを応答データ コレクションData 内で名前が付けられた変数に割り当てています。成功関数がパラメーターを取るからといって、コントローラーで設定した値が自動的に変数になるdataわけではありません。Datadata

Dataリストはオブジェクトにあるため、次のdataことを行う必要があります。

data.Data

あなたの成功関数の中に。これを試して:

success: function(data) {
    alert(data.Data.length);
}
于 2012-05-22T07:20:14.917 に答える