我正在尝试在MVC上开始使用Ajax
在我的主视图中,我有以下代码:
@Ajax.ActionLink("Click here to get the data","LoadData",
new AjaxOptions
{
UpdateTargetId = "dataPanel",
InsertionMode = InsertionMode.InsertAfter,
HttpMethod="GET"
})
<div id="dataPanel">
</div>
我按如下方式创建了控制器的操作:
public PartialViewResult LatestReview()
{
var myData = GetMyData();
return PartialView("_PartialData", myData);
}
_PartialData定义如下:
@model MyApp.Models.Data
<div>
@if (Model == null)
{
<p>There is no data yet</p>
}
else
{
<p>
@Model.Body
</p>
}
</div>
但当我单击链接时,我的数据(在_PartialData中呈现)完全加载到浏览器中,替换了源页面(因此不在dataPanel div中)
当我查看原始页面源代码(在单击ajax链接之前)时,它看到ajax操作定义如下:
<a data-ajax="true" data-ajax-method="GET" data-ajax-mode="after" data-ajax-update="#dataPanel" href="/Home/LoadData">Click here to get the data</a>
<div id="dataPanel">
</div>
我做错了什么?
谢谢
发布于 2011-11-26 01:48:37
我怀疑您忘记在页面中包含jquery不起眼的ajax脚本:
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
这个脚本使得ASP.NET MVC3中的所有Ajax.* helper都有意义。如果没有它,它们就会生成带有HTML5 data-*属性的标准标记,这些属性由脚本使用。
https://stackoverflow.com/questions/8272593
复制相似问题