【发布时间】: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