我正在使用MVC 4进行网站制作。这是一个列出音乐的网站,用户可以创建播放列表(如购物车购物)。
我对每个音乐都有这个应该在Ajax中执行的动作链接:
@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 :(得分:2)
确保已包含
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
在您的视图中
答案 1 :(得分:1)
这是一件蠢事。
首先,我的jquery.unobtrusive-ajax.min.js包含的内容不像我一样:
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
所以我这样说:
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js")
仍然没有用,因为我还需要包含JQuery文件:
@Scripts.Render("~/Scripts/jquery-1.7.1.js")
@Scripts.Render("~/Scripts/jquery.1.7.2.min.js")
这种方式有效:)
答案 2 :(得分:1)
派对有点晚了,但我遇到了类似的问题。解决方案是将此行添加到_Layout.cshtml:
@Scripts.Render("~/bundles/jqueryval")
答案 3 :(得分:0)
首先,在包含Microsoft.JQuery.Unobtrusive.Ajax
之后,从NuGet Manager安装~/Scripts/jquery.unobtrusive
,然后在BundleConfig
中添加jquery-{version}.js
;看起来与此类似:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.unobtrusive*));