【问题标题】:MVC Ajax update partial viewMVC Ajax 更新局部视图
【发布时间】:2011-12-28 18:25:57
【问题描述】:

我想在每次单击 ActionLink 时更新局部视图。我将与主视图相同的模型传递给局部视图。问题是部分视图没有得到更新。不确定我是否走在正确的轨道上。

查看:

@model MyPoll.Models.Poll

@Ajax.ActionLink("For", "AddPositive", new RouteValueDictionary { {"id", Model.Id }},new AjaxOptions() { UpdateTargetId = "countsDiv" })

<div id="countsDiv">
    @Html.Partial("Counts", Model)
</div>

部分:

@model MyPoll.Models.Poll

Positive count : @Model.PositiveCount
Negative count : @Model.NegativeCount

控制器动作:

public ActionResult AddPositive(int id)
{
    Poll poll = db.Polls.Find(id);
    poll.PositiveCount++;
    db.SaveChanges();

    return View(poll);
}

脚本也被引用:

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

【问题讨论】:

  • 是否引用了MicrosoftAjax.js 和MicrosoftMvcAjax.js?还有 jQuery?
  • 你做了基本的调试吗:检查是否有任何js错误,是否看到正在发出的请求,控制器动作是否接收到请求,返回的数据是否实际更新?
  • 如果微软库依赖jquery库,你可能需要先引用jquery库
  • @Nadir MicrosoftMvcAjax 和 MicrosoftAjax 不依赖于 jQuery,但 jquery.unobtrusive 可能;)

标签: ajax asp.net-mvc-3


【解决方案1】:

固定:

在行动:

public **PartialViewResult** AddPositive(int id)
    {
        Poll poll = db.Polls.Find(id);
        poll.PositiveCount++;
        db.SaveChanges();

        return **PartialView**("Counts", poll);
    }

【讨论】:

  • 哇,这有点蹩脚。关于我们为什么需要分离的任何解释?您收到任何错误消息吗?你是怎么想出来的?
  • @vbullinger,我不记得那是什么错误,但我不得不返回 PartialView 而不是 View 来解决问题。
  • 谢谢,这对我也有帮助。同样的错误,但我不知道为什么它不起作用。
【解决方案2】:

这可能是因为您最后加载 jquery。其他js依赖jquery。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多