2012-11-29 32 views
2

我正在使用MVC 4做网站。它是一个列出音乐的站点,用户可以创建一个播放列表(如购物车)。MVC 4 Ajax没有更新页面内的PartialView

我对每一个音乐应在阿贾克斯执行此操作链接:

@Ajax.ActionLink("Adicionar à Playlist","AddPlaylist", new { id = item.MusicaID }, new AjaxOptions {UpdateTargetId="playlist", InsertionMode=InsertionMode.Replace}) 

从控制器的操作方法返回一个PartialView(播放列表的车),并只应更新而是获得整个页面与该部分更新我得到一个局部视图,没有更多的页面上。

这是一部分,我渲染PartialView:

<section id="playlist"> 
    @Html.Partial("_PlaylistPartial") 
</section> 

不应该这项工作就像我有吗?

+0

也许这种解决方案是相关的? http://stackoverflow.com/questions/13626225/mvc-4-ajax-is-not-updating-the-partialview-within-the-page –

+7

你把我的问题的链接... – patricia

回答

1

这是一个愚蠢的事包括

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

首先我包括jquery.unobtrusive-ajax.min.js没有工作像我有:

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

所以我把这样的:

而且仍然没有工作,因为我还需要包括JQuery的文件:

@Scripts.Render("~/Scripts/jquery-1.7.1.js") 
@Scripts.Render("~/Scripts/jquery.1.7.2.min.js") 

这样,它的工作原理:)

2

确保您已在视图

+0

我已经添加了和它不会改变任何东西 – patricia

1

晚会有点晚,但我也有类似的问题。解决的办法是加入这一行_Layout.cshtml:

@Scripts.Render("~/bundles/jqueryval") 
0

首先,从管理的NuGet安装Microsoft.JQuery.Unobtrusive.Ajax后来包括BundleConfig~/Scripts/jquery.unobtrusive包括jquery-{version}.js后;这看起来类似于这样的:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-{version}.js", 
        "~/Scripts/jquery.unobtrusive*));