我有一堆由ID键控的实体。在一个屏幕中,我根据ID加载“主题”,如下所示:"/Results/Subject/53"
在同一个屏幕上,我有一个组合框,维护所有主题的列表。用户可以将此组合中的选择更改为另一个主题,然后使用ajax加载该主题的结果。当我这样做时,浏览器中的URL是陈旧的,因为我现在可能正在查看/Results/Subject/45
如果用户重新加载我重新加载原始文档而不是新文档。
我想要更新网址(这听起来像hacky),或者我想将导航基于ID之外的其他内容作为URL的一部分。我怎样才能做到这一点?如何在不指定Id作为URL的一部分的情况下为特定项加载控制器。
答案 0 :(得分:1)
您还可以通过HTTP GET参数传递id:/Results/Subject?id=45
或HTTP POST参数。
但是,我怀疑这会回答你的问题。
我的一位同事遇到了类似的问题,他通过更改浏览器URL字符串(通过附加特定的#anchor)解决了这个问题。
答案 1 :(得分:0)
最简单的方法是在下拉列表发生变化时抛弃ajax,然后导航到新的URL(/ Results / Subject / NewID)。
如果你想保留ajax,你可以把密钥放在url的末尾,用#like“/ Results / Subject#53”,然后通过Ajax加载(#53不会被传递到服务器)。这样,当用户更改下拉列表时,您可以导航到“/ Results / Subject#NewID”,而不会重新加载页面。