0

コールバックに問題があります。Firebug でエラーが発生することさえありません。getjson 呼び出しの前後にアラートを出すと、両方のアラートが表示されますが、getjson 呼び出しは起動しません。

public ActionResult TestPage()
    {

        return View();
    }

public ActionResult LoadMapLonLats(int mapId)
    {
        //some code
        return Json(_myMaps);
    }


$("#Search").click(function() {
        $.getJSON("LoadMapLonLats", { mapId: 73 }, loadDbMap);
    });

    function loadDbMap(maps) {
        alert('m');
        $.each(maps, function(i) {
            alert(maps[i]);
        });
    }

パラメータなしでTestPageを離れる限り、機能します。TestPage(int id) にパラメーターを追加すると、LoadMapLonLats へのコールバックが機能しません。奇妙に思えます。もちろん、TestPage は読み込んでいるページなので、ページをレンダリングする前にここでいくつかの作業を行う必要があります。ビューにパラメーターを追加すると、別の関数へのコールバックが中断される理由がわかりません。

//this breaks he callback to LoadMapLonLats

public ActionResult TestPage(int id)
    {

        return View();
    }

何か案は?これは関連しているようです。申し訳ありませんが、新しいスレッドを投稿できます。

4

1 に答える 1

1

アクション シグネチャの戻り値をJsonResultではなくとして設定してみてくださいActionResult

    public JsonResult LoadMapLonLats(int mapId)
    {
        //some code
        return Json(_myMaps);
    }

GETこれをさらに詳しく見てみると、この問題は、MVC 2 での JSON 結果の呼び出しに関する変更に関連している可能性があると思われます。

http://haacked.com/archive/2009/06/25/json-hijacking.aspx

基本的に、呼び出しを変更して呼び出しを指定する必要$.post()があります。AcceptVerbsPOST

于 2010-02-27T12:46:47.990 に答える