Jquery ajax / getJSON没有在Controller中获得MVC ActionResult

时间:2010-12-17 05:31:27

标签: jquery asp.net-mvc google-maps

出于某种原因...也许看着太多不同的例子......这是我没有得到的其中一件事。我试图在MVC应用程序中使用google maps api,然后使用JQuery从应用程序获取数据以构建地图。问题是我无法真正达到动作结果的断点(除非我手动输入网址)......

在最基本的形式中,html包含一个onload事件......

<body onload="initialize()">

反过来调用我的JQuery函数......

function initialize() {
    $.GetJSON("/App/Map", MakeMap(mapdata));
}

我根据我读过的内容尝试了一系列不同方法的语法......

function initialize() {
    $.GetJSON("/App/Map", null, function (mapdata) { MakeMap(mapdata); });
}

不管我做什么......我从来没有跟它一起去控制器。任何有关这方面的帮助将非常感激,因为我只是没有得到它。

此外,如果有人知道任何关于JQuery的好书会处理这类事情,欢迎提出建议,因为我认为是时候让自己成为圣诞节的早期礼物;)

编辑:我还应该补充一点,我已经尝试更改请求的URL部分,但没有运气。正在执行请求的页面是/ App / Index with设置为应用程序的主页

2 个答案:

答案 0 :(得分:2)

您是否尝试更改jquery方法名称:

该方法被称为

getJSON()

不是GetJSON();

plus do / App / Map返回一个json字符串?

以下是getJSON上的jQuery文档:

http://api.jquery.com/jQuery.getJSON/

还尝试使用加载回调

这样做
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" ></script>
<script>
$(document).ready(function(){
 /* your getJSON call underneath this comment */
   alert("this should popup when the page loads");

   function initialize() {
      $.getJSON("/App/Map", MakeMap(mapdata));
   }

   initialize();
});
});
</script>
</head>
<body>
 <div>hello load page</div>
</body>
</html>

答案 1 :(得分:0)

或者,您可以使用此代码:

$.get("/App/Map", null, function(data) {
                    MakeMap(data);
                    }, 'json'); 

此外,在ActionResult(JsonResult)中,返回值应如下所示,以便允许使用GET进行调用。

return Json(whatevermodel, JsonRequestBehavior.AllowGet)