【问题标题】:Trouble rendering a partial view on the same page as main view using Ajax.ActionLink()使用 Ajax.ActionLink() 在与主视图相同的页面上呈现部分视图时出现问题
【发布时间】:2013-07-24 00:02:59
【问题描述】:

在我的索引视图中,我显示了几个 Ajax.ActionLink,如下面的代码所示。单击其中一个链接时,我正在尝试将部分视图呈现到 DIV 部分。现在,它正在将部分呈现为自己的页面。我做错了什么?

查看

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
...Other HTML
<article class="border c-two" style="background-image: url('/Content/images/Fancy.jpg')">
    <div style="opacity: 0;" class="fdw-background">
        <h4 style="color:#fff;">Fancy Schmancy</h4>
        <p class="fdw-port">
            @Ajax.ActionLink("Go Now", "GotoStore", "Simulation", new { id = 1 }, new AjaxOptions { UpdateTargetId = "Rest", InsertionMode = InsertionMode.InsertAfter, HttpMethod = "GET" })<span class="vg-icon">→</span>
        </p>
    </div>
</article>
...other  HTML
<div id="Rest"></div>

控制器

public PartialViewResult GotoStore(int id)
{
    Store store = db.Stores.Find(id);
    return PartialView(store);
}

【问题讨论】:

  • 你试过InserionMode.Replace吗?
  • 刚刚试了一下,结果一样。
  • 是通过 ajax 触发的请求,如果您查看 chrome 的网络选项卡或调试工具,看看它是否确实是由 jquery 触发的,或者是否发生了完整的请求
  • 当我单击操作链接时,它会将发起者显示为“其他”。这是你的意思吗?
  • 但是,在 chrome 的 Source 选项卡中,它显示我在 jquery.unobtrusive-ajax.js 中收到“Uncaught ReferenceError”错误。

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


【解决方案1】:

我能够让它工作。问题是我在脚本源中添加的位置。

这个:

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

需要像这样放在布局文件的底部:

    @Scripts.Render("~/bundles/jquery")
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
    @RenderSection("scripts", required: false)

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2022-06-24
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多