我已经按照样品。 我添加了一个_PjaxLayout:
<title>@ViewBag.Title</title>
@RenderBody()
修改我的_layout:
<div id="shell">
@RenderBody()
</div>
<script type="text/javascript">
$(function () {
// pjax
$.pjax.defaults.timeout = 5000;
$('a').pjax('#shell');
})
</script>
更新ViewStart:
@{
if (Request.Headers["X-PJAX"] != null) {
Layout = "~/Views/Shared/_PjaxLayout.cshtml";
} else {
Layout = "~/Views/Shared/_Layout.cshtml";
}
}
然而,我每次点击一个“A”的标签时,pjax代码不会被调用。 就好像当我设置了pjax选择不工作。 我究竟做错了什么?
更新:
如果我这样做:
$('document').ready(function () {
$('a').pjax({
container: '#shell',
timeout: 5000
});
});
我看到pjax代码击中和请求头得到更新,并在页面上的新内容加载,但造型和布局回真的混淆和重复...
更新:
检查这种疯狂情况发生后的DOM揭示了新的一页的内容获得直接加载到我点击,而不是与ID #shell元素的锚点。 WTF?