提问人:radbyx 提问时间:2/5/2015 更新时间:2/6/2015 访问量:724
菜单应该在 MVC 5 中加载视图还是部分视图?
Should a Menu load a Views or a Partial Views in MVC 5?
问:
为了简单起见,想象一个菜单左侧有三个按钮,右侧有一个内容区域的网站。这些按钮将内容加载到“内容”区域。
当点击一个按钮时,我想要:
1) 要相应更改的 URL。这意味着如果按钮是“Foo”、“Bar”和“Baz”。我希望 URL 类似于“http://localhost/mySite/Baz/ShowBazs,单击第 3 个按钮时。
2)按钮应该用CSS类突出显示(在发出AJAX请求之前使用一些jquery)
3) (仅?)应加载内容区域
加载视图
- 还行
- 不行。菜单重新加载到零开始
- 半OK。菜单重新加载到零开始。内容区域可以很好地加载到
@RenderBody()
加载局部视图
1)不行。URL 发生意外
2) 好的,菜单没有重新加载
3) 好的,只有内容区域是加载的。
我知道没有一个单一的答案可以设计所有网站。只是觉得我在这里错过了一些好东西。
在您看来,最好的解决方案是什么,为什么?
目前,我只在“内容”区域中使用“部分视图”。菜单很好,内容只加载,而且真的很好。但是 URL 保持不变,根本不使用视图感觉不对。
我最好的主意是重写网站以使用视图,然后让视图负责设置突出显示的按钮。
答:
实现所有设计要求的唯一可能方法是通过 HTML 5 中的 History API(换句话说,它只能在现代浏览器中工作:IE 10+ 和几乎所有人类已知的所有其他浏览器)。有一个支持 IE 9 及以下版本的 polyfill:History.js。但是,它在这些浏览器中使用 URL 片段 (),因此 URL 结构不会完全相同。不过,无论如何,这是一个很好的脚本,因为 History API 在支持它的浏览器之间实现的方式略有不同,而 polyfill 有助于使所有内容保持在同一基础上。#foo
上一个:如何将两个正则表达式合二为一?
下一个:如何让我的点击捕捉器工作?
评论