为了简单起见,想象一个网站的菜单左侧有三个按钮,右侧有一个内容区域。按钮将内容加载到“内容”区域。
单击按钮时,我想:
1)相应更改的URL。这意味着如果按钮是“Foo”,“Bar”和“Baz”。当点击第3个按钮时,我希望URL与“http://localhost/mySite/Baz/ShowBazs类似。”
2)按钮应该用CSS类突出显示。 (在发出AJAX请求之前有一点jquery)
3)(仅?)内容区域应加载
加载视图
@RenderBody()
加载部分视图
1)不行。网址没有发生
2)确定。菜单不是重新上传
3)确定。只有内容区域才有用。
我知道设计所有网站没有一个答案。只是感觉我在这里错过了一些好东西。
您认为最佳解决方案是什么?为什么?
目前我只在“内容”区域中使用“部分视图”。菜单很好,只有内容加载,它真的很好。但是URL保持不变,并且根本不使用视图会感觉不对。
我最好的想法是重写网站以使用视图,然后让视图负责设置突出显示的按钮。
答案 0 :(得分:1)
实现所有设计要求的唯一可能方法是通过History API in HTML 5(换句话说,it will only work in modern browsers:IE 10+以及人工已知的几乎所有其他浏览器)。有一个支持IE 9及以下版本的polyfill:History.js。但是,它在这些浏览器中使用网址片段(#foo
),因此网址结构不会完全相同。但是,无论如何,它都是一个很好的脚本,因为在支持它的浏览器中,历史API的实现方式有所不同,而且polyfill有助于保持所有内容的相同基础。