【问题标题】:MVC 4 Ajax is not updating the PartialView within the pageMVC 4 Ajax 未更新页面内的 PartialView
【发布时间】:2012-11-29 12:50:13
【问题描述】:

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

不应该像我一样工作吗?

【问题讨论】:

标签: c# ajax asp.net-mvc razor


【解决方案1】:

确保您已包含

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

在你看来

【讨论】:

    【解决方案2】:

    这是一件愚蠢的事情。

    首先我包含的 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")
    

    这样就可以了:)

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-17
          • 2012-07-14
          • 2015-12-24
          • 2013-01-11
          • 1970-01-01
          • 1970-01-01
          • 2016-04-04
          • 2012-06-07
          相关资源
          最近更新 更多