2010-02-27 77 views
0

我遇到了回調問題。我甚至沒有在Firebug中發生錯誤。如果我在getjson調用之前和之後都發出警報,則兩個警報都會顯示,但getjson調用不會觸發。如果mvc模型視圖控制器有一個參數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(); 
    } 

任何想法?似乎這可能是相關的,如果不是遺憾,我可以發佈一個新的線程。

+0

使用螢火蟲並檢查淨選項卡。你可能會在那裏發現問題。 – 2010-02-27 13:01:36

回答

1

嘗試將操作簽名中的返回結果設置爲JsonResult而不是ActionResult

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

樂在其中進一步看,我懷疑問題可能與關於MVC GET調用一個JSON結果2.

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

基本上你需要改變的變化致電$.post(),並讓AcceptVerbs指定POST致電。

相關問題