我正在使用Ext.Net TreeGrid在MVC项目上工作。我有一个页面“PieChart2”上的treegrid。当我第一次加载PieChart2时,我加载了具有根节点的树。当我点击其中一个节点时,我想在相同的URL中传递节点ID(/Home/PieChart2/nodeid)。我尝试通过在treegrid的click事件中使用以下代码重定向到一个URL来实现此目的。Response.RedirectToRoutePermanant不改变客户端的URL
idVal是treenode被点击的节点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)301状态码与原始URL和2)新的URL。 Url也被正确处理,但浏览器仍显示“/ Home/PieChart2”而不是“Home/PieChart2/nodeid”。
我正确的做法吗?如果是的话,可能是它不起作用的原因是什么?
一个愚蠢的问题 - 最初的HTTP请求是通过AJAX还是通过标准的同步HTTP post?如果通过AJAX请求,您是否在处理AJAX代码中的HTTP 301重定向? – 2011-04-25 04:16:25
单,它是一个同步HTTP请求。谢谢 – 2011-04-25 17:52:59
我看到 - 在客户端,您如何处理Ajax代码中的重定向请求?如果你没有安置它,你可能不得不这样做。以http://stackoverflow.com/questions/199099/how-to-manage-a-redirect-request-after-a-jquery-ajax-call为例。 – 2011-04-25 19:23:41