2011-12-13 2 views
4

선택시 gridview를 리디렉션하려고합니다. 그러나 리다이렉션하려고하는 페이지가 다른 폴더에있을 때 리다이렉션에 막혔습니다.다른 폴더로 리디렉션

gridview는 HR 폴더에 있습니다. 이 파일을 Staff (Staff \ Staff)라는 폴더 내의 Staff라는 파일로 리디렉션하려고합니다. 어떻게하면 다른 폴더로 리디렉션 할 수 있습니까?

If e.CommandName = "Select" Then 
     'Add to session variable; translate the index of clicked to Primary Key 
     Session.Add("DetailsKey", GridView1.DataKeys(e.CommandArgument).Value.ToString) 
     Response.Redirect("staff\staff.aspx") 
    End If 

답변

11
Response.Redirect("~/staff/staff.aspx") 
3

이 트릭

Response.Redirect("~/staff/staff.aspx"); 
6

중요한 것은이 /보다는 \을 사용하는 것입니다을 수행해야합니다. 서버의 폴더로 리디렉션하지 않고 웹 사이트의 경로로 리디렉션합니다 (이는 서버의 폴더가 구현 세부 사항 일 뿐이라는 사실을 의미합니다).

상대 링크로 할 수있는 모든 양식을 수행 할 수 있습니다. 따라서 "staff/staff.aspx"은 현재 폴더에있는 staff라는 폴더의 staff.aspx 파일로 이동합니다 (폴더 및 파일 기반 시스템을 가정). "../staff/staff.aspx"은 폴더로 이동 한 다음 staff에게 staff.aspx로 이동합니다. "../../staff/staff.aspx"가 먼저 두 개 올라갑니다. "/staff/staff.aspx"은 (http://mysite.com/staff/staff.aspx 등)에있는 도메인의 루트로 이동합니다.

이 외에도 "~/staff/staff.aspx"은 응용 프로그램의 루트로 이동 한 다음 해당 위치의 스태프로 이동 한 다음 staff.aspx로 이동합니다. 프로젝트가 http://localhost/currentProject/에 있지만 에 배포되었으므로 에있는 사이트에서 작업하는 경우 유용합니다. 사이트는 http://mysite.com/입니다. 이렇게하면 같은 코드가 두 가지 방식으로 작동합니다.