如果mvc模型视图控制器有一个参数getJSON不起作用
问题描述:
我遇到了回调问题。我甚至没有在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();
}
任何想法?似乎这可能是相关的,如果不是遗憾,我可以发布一个新的线程。
答
尝试将操作签名中的返回结果设置为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
致电。
使用萤火虫并检查净选项卡。你可能会在那里发现问题。 – 2010-02-27 13:01:36