【发布时间】:2014-11-18 20:13:06
【问题描述】:
在我的 _Layout.cshtml 页面中,页面左侧有几个链接,页面右侧有一个主要内容区域,单击链接时,只有内容区域应该更新。我不想重新加载整页。
我尝试使用 Ajax 加载部分视图
所以在我的 _Layout.cshtml 页面中
这是链接:
<a href="#" onclick="return link_click()">Click here</a>
内容区域 div
<div class="page-content">
@RenderBody()
@RenderSection("Scripts", false)
</div>
然后通过Ajax调用加载内容区域
function link_click() {
$('.page-content').load('/Home/Register);
return false;
}
从 MVC 控制器:我只是返回部分视图。
我的问题:
这种方法效果很好,但问题是浏览器上的 URL 保持不变。我需要根据内容页面修改浏览器网址,以便用户可以为页面添加书签并使用后退/前进浏览器按钮查看历史记录。浏览器 URL 将如何修改?
我在 google 上做了一些研究,发现使用 HTML5 pushstate 技术和 Ajax 的 jQuery 插件 Pjax 和 Pajax,但我不确定哪个是更好的解决方案(Pjax 或 PAjax)?演示 Pjax 和 Pajax 的示例也已经过时了。有什么最新的技术/模式可以实现上述目标?
我不想避免使用 AngularJS、Knockout 等 SPA 框架,因为使用这些框架需要我公司的多次批准,我想避免这种情况。
非常感谢您对此提供任何帮助或建议。
谢谢,
【问题讨论】:
标签: jquery asp.net-mvc asp.net-mvc-4 jquery-plugins asp.net-mvc-5