您好我的MVC应用程序有问题。 我想点击ActionLink>从服务器加载数据>并在同一页面中将数据插入div。 但我的代码仍然在新页面加载内容,我不知道为什么。有人帮我吗?
这是我在HomeController中的Index.cshtml,
@model IEnumerable<Kango_kmen.KangoKmenWS.WSEntityInfo>
@Content.Script("jquery-1.9.1.min.js", Url)
@Content.Script("jquery.unobtrusive-ajax.min.js",Url)
@Content.Script("jquery.unobtrusive-ajax.js",Url)
@Content.Script("myScript.js",Url)
@section Entities{
<table>
<tr>
<th>
<input type="submit" value="zobrazit" />
</th>
<th>
iD
</th>
<th>
name
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Ajax.ActionLink("..", "CheckEntity", new { id = item.iD },
new AjaxOptions{ UpdateTargetId="properties",
HttpMethod="GET",
InsertionMode=InsertionMode.InsertAfter,
})
</td>
<td>
@Html.DisplayFor(modelItem => item.iD)
</td>
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
</tr>
<tr>
<td>
<div id="properties">
</div>
</td>
</tr>
}
</table>
}
@section PropertyInfo{
<p>Property info</p>
}
@section Properties{
<p>properties</p>
}
这是我在HomeController中的控制器
public PartialViewResult CheckEntity(int id)
{
var model = WSConnect.getEntityInfo(id);
if(model !=null){
return PartialView("CheckEntity", model.property);
}
var modell = new WSEntityInfo[0];
return PartialView("CheckEntity", modell);
}
和ChecktEntity是部分视图,但每次我点击ActionLink控制器加载url:/ Home / ChceckEntity / 1000以获取此新页面上的查看数据的例外情况“(
答案 0 :(得分:2)
您的代码有两个问题:
jquery.unobtrusive-ajax.js
脚本包括两次,一旦是缩小版本,一次是标准版本。你应该只包括一次jquery.unobtrusive-ajax.js
不兼容with jquery 1.9.1
,因为jQuery 1.9中的一个重大变化是.live()
method was removed和jquery.unobtrusive-ajax.js
脚本依赖它。如果你查看你的javascript控制台,你会看到以下错误:The .live method is undefined.
。因此,如果您想在ASP.NET MVC中使用不显眼的AJAX功能,则必须降级jQuery的版本。例如,1.8.3
版本应该没问题。所以:
@model IEnumerable<Kango_kmen.KangoKmenWS.WSEntityInfo>
@Content.Script("jquery-1.8.3.min.js", Url)
@Content.Script("jquery.unobtrusive-ajax.min.js", Url)
@Content.Script("myScript.js", Url)
另请注意如何调试您的javascript代码。使用FireBug或Chrome开发人员工具栏等工具,可以显示所有这些错误。