我正在尝试在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>
我做错了什么?
由于
答案 0 :(得分:1)
我怀疑您忘记将jquery不显眼的ajax脚本包含在您的页面中:
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
这个脚本能理解ASP.NET MVC 3中的所有Ajax。*帮助程序。如果没有它,它们会生成带有HTML5 data- *属性的标准标记,这些属性由脚本使用。