Ext.Net TreeGrid를 사용하는 MVC 프로젝트에서 작업하고 있습니다. 페이지 "PieChart2"에 나무 그루브가 있습니다. 처음 PieChart2를로드 할 때 루트 노드가있는 트리를로드합니다. 노드 중 하나를 클릭하면 동일한 URL (/Home/PieChart2/nodeid).I에서 노드 ID를 전달하려는 경우 트리 그리드의 click 이벤트에서 다음 코드를 사용하여 URL로 리디렉션하여이를 시도하고 있습니다.Response.RedirectToRoutePermanant는 클라이언트에서 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/nodeid"대신 "/ Home/PieChart2"를 표시합니다.
내가 올바르게하고 있습니까? 그렇다면 작동하지 않는 이유는 무엇입니까?
바보 같은 질문 - 원래 HTTP 요청은 AJAX 또는 표준 동기식 HTTP 게시를 통해 발생합니까? AJAX 요청에 의해 AJAX 코드에서 HTTP 301 리디렉션을 처리하고 있습니까? –
Shan, 동기화 HTTP 요청입니다. 감사합니다. –
클라이언트 측에서 Ajax 코드 내에서 리디렉션 요청을 어떻게 처리하고 있습니까? 당신이 그것을 수용하지 않았다면 아마도해야 할 것입니다. 예를 들어 http://stackoverflow.com/questions/199099/how-to-manage-a-redirect-request-after-a-jquery-ajax-call을 참조하십시오. –