使用Jquery Ajax从Orchard Controller返回Json数据

时间:2012-05-24 03:13:52

标签: ajax orchardcms

我一直在尝试使用jquery ajax函数从果园控制器返回数据,但到目前为止我还没有成功。我在控制器上设置了断点,但代码永远不会到达控制器。 这是JQuery函数

<table id="tblResults" class="tablesorter">
    <thead>
       ...
    </thead>
    <tbody>
        @foreach (dynamic item in Result)
        {
          <tr>...</tr>
                }
    </tbody>
</table> 
<input id="__requesttoken" type="hidden" value="@Html.AntiForgeryTokenValueOrchard()" />

@using (Script.Foot())
{
    <script type="text/javascript">
        //<![CDATA[
        $(function () {
            $("#tblResults").tablesorter();
            setInterval(update, 20000);
        });
        function update() {
            $.ajax({
                type: 'POST',
                url: '@Url.Action("GetResults", "ResultsController", new { area = "Orchard.App" })',
                data: { token: $("#__requesttoken").val() },
                success: function (response) {
                    alert(response);
                },
                error: function () {
                    alert('error');
                }
            });
        }
        //]]>
    </script>
}

对于ResultsController我只有这个

[OutputCache(Duration = 0)]
public JsonResult GetResults()
{
   var json = DateTime.Now.ToString();
   return Json(json, JsonRequestBehavior.AllowGet);
}

注意:Ajax调用执行得很好,但它永远不会达到设置在&#34; GetResults&#34;的断点。我看到的http post url是&#34; http:// localhost:30320 / OrchardLocal /&#34; 此外,我得到的响应是整个HTML页面。 提前致谢

1 个答案:

答案 0 :(得分:4)

结果后删除控制器:&#34;结果&#34;,不是&#34; ResultsController&#34;。此外,您还需要在该帖子中包含防伪令牌。哦,setInterval是邪恶的。