Response.RedirectToRoutePermanant 不更改客户端的 URL
我正在使用 Ext.Net TreeGrid 开发一个 MVC 项目。我在“PieChart2”页面上有树形网格。当我第一次加载 PieChart2 时,我加载带有根节点的树。当我单击其中一个节点时,我想在同一 url (/Home/PieChart2/nodeid) 中传递节点 id。我尝试通过在树形网格的单击事件中使用以下代码重定向到 URL 来实现此目的。
idVal 是被单击的树节点的节点 ID。
string newUrl = "/Home/PieChart2/" + idVal ;
Response.RedirectToRoutePermanent("PieRoute", new { id = idVal });
PieRoute 在 Global.asax 中看起来像这样。
routes.MapRoute("PieRoute", "{controller}/{action}/{id}", new { controller = "Home", action = "PieChart2", id = UrlParameter.Optional });
我在重定向时看到对服务器的两个请求 1) 带有原始 URL 的 301 状态代码和 2) 新 URL。 Url 也被正确处理,但浏览器仍然显示“/Home/PieChart2”而不是“Home/PieChart2/nodeid”。
我的做法正确吗?如果是,那么它不起作用的原因可能是什么?
I am working on a MVC project using Ext.Net TreeGrid. I have the treegrid on a page "PieChart2". When I first load PieChart2, I load the tree with root nodes. When I click on one of the nodes I want to pass the node id in the same url (/Home/PieChart2/nodeid).I am trying achieve this by redirecting to a URL using the following code in the click event of the treegrid.
idVal is node id of the treenode that was clicked.
string newUrl = "/Home/PieChart2/" + idVal ;
Response.RedirectToRoutePermanent("PieRoute", new { id = idVal });
PieRoute looks like this in Global.asax.
routes.MapRoute("PieRoute", "{controller}/{action}/{id}", new { controller = "Home", action = "PieChart2", id = UrlParameter.Optional });
I see two requests to the server on redirection 1) 301 status code with original URL and 2) the new URL. The Url is processed correctly also, but the browser still shows "/Home/PieChart2" instead of "Home/PieChart2/nodeid".
Am I doing it the right way? If yes, what could be the reason for it to not work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
浏览器应该更新,除非这是 ajax 调用或来自框架元素内的调用。在这些情况下,它不会是设计使然的。
The browser should update unless this is either an ajax call or call from within a frame element. In those cases, it won't by design.