带有Ajax链接的ASP.NET MVC更新地址栏

时间:2010-09-07 11:42:28

标签: asp.net-mvc url actionlink address-bar

我正在尝试创建一个ajax驱动的图库,其中序列中的每张照片都加载了Ajax.Actionlink

用户可以通过将参数传递给操作方法来获取任何给定的照片,例如:Gallery/Index?photo=100

问题是,当用户使用Ajax.Actionlink循环浏览照片时,网址不再更新(正常回发期间的方式),因此无法复制粘贴地址栏可以回到照片。


我的问题是:在ASP.NET MVC中解决此问题的最佳方法是什么?我想到的一件事是用地址栏更新地址栏,但坦率地说我不知道​​这是不是一个好办法。

我可以使用一些关于如何解决这个问题的最佳实践建议。非常感谢任何建议,谢谢。

2 个答案:

答案 0 :(得分:2)

如果你真的想用每个ajax更新更新地址栏,你可以使用几个jquery / javascript库,如本博文中所述:http://stephenwalther.com/archive/2010/04/08/jquery-asp-net-and-browser-history

然而,最佳实践解决方案通常不是试图伪造这样的东西(它只会出错)。如果您希望为您的用户提供共享或链接到照片的功能,则可以为字段提供相应的网址或永久链接到他们可以复制的网址。谷歌地图有一个很好的例子 - 如果你想与其他人分享地图。

答案 1 :(得分:0)

我会考虑重写您的路线以在路径中包含照片ID。

例如,/ Gallery / Index / 100而不是?photo = 100。这就是为什么你的ActionLink方法不能正常工作的原因,因为查询字符串不是路由的一部分。