Jquery 使用ASP.NETMVC、Ajax和局部视图,如何更新url?
好的,我试着在页面的左侧有一个静态菜单,这样当点击链接时它就不会改变 我是如何做到这一点的,我在我的a标签上调用了一点javascript,它调用了一些ajax。我的控制器返回一个局部视图,然后将其加载到我的content div中 这一切都很好。我遇到的问题是,我的URL没有更改,我希望能够使用“后退”按钮返回到上一页 我曾尝试使用location.hash,但这似乎并不像我希望的那样有效。想法 下面是我的代码 HTML 控制器Jquery 使用ASP.NETMVC、Ajax和局部视图,如何更新url?,jquery,html,asp.net-mvc,Jquery,Html,Asp.net Mvc,好的,我试着在页面的左侧有一个静态菜单,这样当点击链接时它就不会改变 我是如何做到这一点的,我在我的a标签上调用了一点javascript,它调用了一些ajax。我的控制器返回一个局部视图,然后将其加载到我的content div中 这一切都很好。我遇到的问题是,我的URL没有更改,我希望能够使用“后退”按钮返回到上一页 我曾尝试使用location.hash,但这似乎并不像我希望的那样有效。想法 下面是我的代码 HTML 控制器 public ActionResult PageName()
public ActionResult PageName()
{
return PartialView("MyPage");
}
谢谢!
大卫考虑退房。实现w/MVC非常容易,并且可以完成您想要完成的任务
谈论另一种选择,PAjax
正如您在评论中所述,这两种方法都利用了pushState,但并非所有浏览器都完全支持。但是pjax在不支持pushstate的情况下,通过进行完整页面的更新,确实会优雅地降低性能。问这个问题的另一种方式是如何获得一个功能类似gmail的副菜单……我曾考虑过使用pushstate,但这方面的浏览器支持似乎仍然很弱。据我所知,pushstate是使用Ajax完成URL更新的唯一方法。但你是对的,一些旧的浏览器(也许还有IE)并不完全支持这一点。幸运的是,pjax会优雅地降级,但只有在您可以接受的情况下。令人惊叹的。非常感谢!仅供参考…另一个有用的链接:
function ChangePage(path, hash) {
$.post(path, function (data) {
$('#content').html(data);
window.location.hash = '#' + hash;
});
}
public ActionResult PageName()
{
return PartialView("MyPage");
}