2010-02-27 6 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

방화범을 사용하고 넷 탭을 확인하십시오. 문제가있을 것입니다. –

답변

1

동작 서명의 반환 결과를 ActionResult 대신 JsonResult으로 설정해보십시오. 이것 좀 더 모양을 갖는

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

, 나는 문제가

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

는 기본적으로 사용자가 변경할 필요가 2 MVC에서 JSON 결과에 GET 통화에 대한 변경과 관련이있을 수 있습니다 의심 $.post()으로 전화하여 AcceptVerbsPOST 전화를 지정하십시오.

관련 문제