Ajax.ActionLink失败

时间:2011-07-07 19:51:44

标签: asp.net-mvc-3 asp.net-ajax

现在我正在学习MVC的Ajax实现,但我无法正常工作。这就是我所拥有的:

@Ajax.ActionLink("Click here to get a title", "Yo",
    new AjaxOptions { OnSuccess = "alert(\"YES!\")", OnFailure = "alert(\"WHY?!\")" })

以下是两种控制器方法:

    public PartialViewResult GetThatTitle()
    {
        var titular = new TitleDataEntity { };
        titular.TitleName = "Inception!";
        titular.PublishDate = DateTime.Now;
        titular.Id = 2;

        return PartialView("_testView", titular);
    }

    public JsonResult Yo()
    {
        var titular = new TitleDataEntity { };
        titular.TitleName = "Inception!";
        titular.PublishDate = DateTime.Now;
        titular.Id = 2;
        if(Request.IsAjaxRequest())
        {
            return Json(titular);
        }
        return Json(titular);
    }

当我调用“Yo”函数时,浏览器会给我“为什么?!”警报框。但是当我调用GetThatTitle时,它会给我成功警报。当我尝试返回Json结果时为什么会失败?

1 个答案:

答案 0 :(得分:0)

在返回默认禁用的JSON时,您需要允许这样的GET请求:

return Json(titular, JsonRequestBehavior.AllowGet);

我强烈建议您使用FireBug。它在其控制台中显示所有AJAX请求,您可以看到请求和响应。如果您已经使用过它,您会看到以下内容:

  

InvalidOperationException:这个   请求已被阻止,因为   敏感信息可能是   向第三方网站披露   当在GET请求中使用它时。至   允许GET请求,设置   JsonRequestBehavior to AllowGet。]

当然会让你走上正确的轨道。