2011-04-25 2 views
0

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"를 표시합니다.

내가 올바르게하고 있습니까? 그렇다면 작동하지 않는 이유는 무엇입니까?

+0

바보 같은 질문 - 원래 HTTP 요청은 AJAX 또는 표준 동기식 HTTP 게시를 통해 발생합니까? AJAX 요청에 의해 AJAX 코드에서 HTTP 301 리디렉션을 처리하고 있습니까? –

+0

Shan, 동기화 HTTP 요청입니다. 감사합니다. –

+0

클라이언트 측에서 Ajax 코드 내에서 리디렉션 요청을 어떻게 처리하고 있습니까? 당신이 그것을 수용하지 않았다면 아마도해야 할 것입니다. 예를 들어 http://stackoverflow.com/questions/199099/how-to-manage-a-redirect-request-after-a-jquery-ajax-call을 참조하십시오. –

답변

0

브라우저가 ajax 호출이거나 프레임 요소 내에서 호출이 아니면 업데이트해야합니다. 이러한 경우 설계 상 의도하지 않습니다.

+0

Adam, 확실히 프레임 요소에서 왔습니다. 프레임 내에서 기본 창의 URL을 업데이트하는 방법이 있습니까? 감사! –

+0

nope - 큰 보안 문제가 될 수 있습니다. 다른 '나쁜'사이트에있을 때 www.google.com으로 말할 수 있습니다. 기본 창을 업데이트하려면로드중인 해당 URI가 있어야합니다. 특정 페이지 섹션을 마우스 오른쪽 버튼으로 클릭하고 정보를 볼 수 있지만 링크를 보려면 파이어 폭스에서 예를 들어. 프레임을 이용한 재미입니다. 부모님의 전신 URI를 바꿀 수 있다고 생각합니다. xyz.com/default.aspx#sometag 물론 전체 URI가 변경되지는 않습니다. –