3

我正在使用 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>

这不应该像我一样工作吗?

4

4 回答 4

2

确保您已包含

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

在你看来

于 2012-11-29T12:59:45.667 回答
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")

这样就可以了:)

于 2012-11-30T12:57:38.740 回答
1

聚会有点晚了,但我也遇到了类似的问题。解决方案是将此行添加到 _Layout.cshtml:

@Scripts.Render("~/bundles/jqueryval")
于 2013-09-26T22:26:50.067 回答
0

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

 bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js",
                    "~/Scripts/jquery.unobtrusive*));
于 2016-12-22T07:22:19.783 回答