ASP.NET MVC的Fanycbox 1.3.4 ajax问题

时间:2012-03-24 11:31:15

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

我正在使用Fancybox 1.3.4和ASP.NET MVC 3。

我有以下链接:

<a id="various" href="Like/List/@feed.Id" class="petlikeCount liked">@feed.LikeCount</a>

还有jquery:

<script type="text/javascript">
        $(document).ready(function () {

            $("#various").fancybox({
                type: 'ajax'
            });              

        });        
</script>

Like控制器中的控制器操作:

public JsonResult List(int id)
        {
            return Json("success", JsonRequestBehavior.AllowGet);
        }

我的问题是 Like / List 永远不会被调用(使用断点检查),只显示fancybox并显示“父”页面的内容....

我也试过iframe内容返回纯html,但是我得到了与上面相同的奇怪行为。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

我建议您使用HTML帮助程序而不是硬编码锚点:

@Html.ActionLink(
    feed.LikeCount, 
    "List", 
    "Like", 
    new { id = feed.Id }, 
    new { id = "various", @class = "petlikeCount liked" }
)

您应该确保的另一件事是feed.Id实际上是一个整数变量,以便在调用List动作时正确传递此id。

所以你的网址应该是这样的:/List/Like/123。然后假设您保留了默认路由并且没有弄乱一些自定义路由,应该调用List操作并将正确的id作为参数传递。

此外,我强烈建议您在浏览器中使用javascript调试工具,例如FireBug,您可以在其中查看脚本的任何潜在错误以及发送的实际AJAX请求,这将允许您更多轻松调试这些问题。