-1

<a>アクションメソッドによって返されるJsonに基づいてリンクを構築する方法をテストする必要があるため、静的JSONを返す次のアクションメソッドを作成しました-

public ActionResult statisjson(int start = 0, int rows = 50)
        {
string j = "{'data': [{'url': 'http://192.168.10.50/WCF?imgid=1', 'desc': 'firstdoc'},{'url': 'http://192.168.10.50/WCF?imgid=2', 'desc': 'firstdoc'},{'url': 'http://192.168.10.50/WCF?imgid=3', 'desc': 'firstdoc'}]}";
return Content(j, "application/json");

        }

次に、次のスクリプトを定義してリンクを作成できます。-

$(document).ready(function getstaticjson() {




            $.ajax({
                type: 'GET',
                url: 'http://localhost:1431/Home/statisjson',
                dataType: 'json',

                success: function (result) {

                    $.each(result.data, function (key, val) {


                        $("<a>" + val.desc + "</a>").attr("href", val.url).appendTo("#links123");

                    });
                }
            });


        });
<div id="links123"></div>

しかし、アプリケーションを実行するとリンクは構築されません。

4

3 に答える 3

1

リンクを生成するためのコードは正しく機能しますが、$.ajax呼び出しにいくつか追加する必要があります。

  • キーと文字列値に一重引用符ではなく二重引用符を使用して、有効なJSONを指定します。"'

  • 変数が文字列ではなくオブジェクトになるdataType: 'json'ようにオプションを追加します。result

ここで利用可能なコードを操作するフィドル

于 2012-11-18T09:02:38.840 に答える
0

次のような JSON を返す必要があります (コードはテストしていません)。

public ActionResult statisjson(int start = 0, int rows = 50)
    {
         var j = new { data = [new {url = 'http://192.168.10.50/WCF?imgid=1', desc = 'firstdoc'},...] };
         return Json(j, JsonRequestBehaviour.AllowGet);
    }

または、結果を解析する必要があります (アクションから文字列を返すため):

var data = JSON.parse(result);
于 2012-11-18T09:04:43.763 に答える
0

これを試して:

それは働いています。これを確認してください:jsFiddle

var a = '<a ' + 'href="' + val.desc + '" >' + val.url + '</a>';
$("#links123").html(a);
于 2012-11-18T08:49:02.517 に答える