asp.net mvc partialview @ Ajax.ActionLink不起作用

时间:2012-01-08 13:38:34

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

我有一个视图页面

我的观看页面

<div id="beReplaced">
    @Ajax.ActionLink("please click on me to bring the partial view",
                     "PatrialViewToBeCalled",
                     new AjaxOptions()
                        {UpdateTargetId = "beReplaced",
                        InsertionMode = InsertionMode.InsertAfter,
                        HttpMethod="Get",
                        LoadingElementId = "prgress" })
 </div>

我有一个控制器

public PartialViewResult PatrialViewToBeCalled()
{
    var customer = db.Customers.First();

    return PartialView("PartialViewThatMustBeShow",customer);
}   

但是当我点击生成的链接时,它会将我带到一个新页面而不是 将部分视图替换或附加到div标签。

有什么问题?

5 个答案:

答案 0 :(得分:10)

可能是你错过了:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

在主视图中。这告诉主视图识别ajax助手。

答案 1 :(得分:1)

我找到了解决方案。问题是由于损坏的unobtrusive-ajax.min.js文件造成的。

答案 2 :(得分:0)

如果您在页面中加载了jQuery,为什么不使用简单的jquery get / load方法来获取局部视图?

<div id="beReplaced">
  <a href="#" id="lnk1">please click on me to bring the partial view</a>
</div>

<强>的Javascript

$("#lnk1").click(function(){
$.get('/controller/PatrialViewToBeCalled', function(data) {
         $('#beReplaced').html(data);
      });
});

答案 3 :(得分:0)

如果您正在使用ASP .NET MVC 4,请确保

  @Scripts.Render("~/bundles/jquery")

也在body标签的末尾。

      @Scripts.Render("~/bundles/jquery")
        @RenderSection("scripts", required: false)
    </body>
</html> 

答案 4 :(得分:0)

我一直在研究它太长时间了,认为它不起作用。查看页面源也没有显示任何内容。

最终,当我在Firebug的控制台中看到成功的请求时,我发现它确实起作用了。它只是在屏幕上显示出来。在Firebug的HTML选项卡中,我终于找到了输出,即使它没有显示在页面源中。

相关问题