使用ASP.Net MVC,Ajax和Partial Views,如何更新我的URL?

时间:2012-11-15 20:12:12

标签: jquery html asp.net-mvc

好的,所以我试图在页面左侧放置一个静态菜单,以便在点击链接时不会改变。

我是如何做到这一点的是我在我的A标签上调用了一些调用ajax的小javascript。我的控制器返回一个部分视图,然后将其加载到我的内容div中。

一切正常。我遇到的问题是我的网址没有变化,我希望能够使用后退按钮返回上一页。

我曾尝试使用location.hash,但这似乎并不像我希望的那样有用。想法?

以下是我的代码。

HTML

<li class="item3"><a href="#">Admin</a>
<ul>
    <li class="subitem1"><a onclick="ChangePage('/Admin/PageName', 'Hash')">Page Name</a></li>

的Javascript

function ChangePage(path, hash) {
        $.post(path, function (data) {
            $('#content').html(data);
            window.location.hash = '#' + hash;
        });
    }

控制器

 public ActionResult PageName()
    {
        return PartialView("MyPage");
    }

谢谢! 大卫

1 个答案:

答案 0 :(得分:3)

考虑结帐pjax。实现w / MVC非常容易,并且完全可以完成你想要完成的任务。

This article讨论另一种选择,PAjax。

正如你在评论中所说的那样,杠杆pushState仍未得到所有浏览者的完全支持。但是,当不支持pushstate时,pjax通过执行完整页面更新而优雅地降级。