Response.RedirectToRoutePermanant 不更改客户端的 URL

发布于 2024-11-02 21:38:29 字数 725 浏览 1 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

她比我温柔 2024-11-09 21:38:29

浏览器应该更新,除非这是 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文