2011-12-13 21 views
4

選択時にグリッドビューをリダイレクトしようとしています。しかし、リダイレクトしようとしているページが別のフォルダにあるときに、リダイレクトに固執しています。レスポンスが別のフォルダにリダイレクトされる

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

を行う必要があります。サーバー上のフォルダにリダイレクトするのではなく、Webサイト上のパスにリダイレクトします(これはサーバー上のフォルダが実装の詳細に過ぎないことを意味します)。

すべてのフォームを相対リンクで実行できます。したがって"staff/staff.aspx"は、現在のフォルダーにあるstaffというフォルダー内のstaff.aspxというファイルに移動します(フォルダーおよびファイルベースのシステムを想定しています)。 "../staff/staff.aspx"はフォルダを上に移動し、次にスタッフに、次にstaff.aspxに移動します。 "../../staff/staff.aspx"が最初に2つ上がります。 "/staff/staff.aspx"は(http://mysite.com/staff/staff.aspxなど)のドメインのルートに移動します。

これらのすべてと同様に、"~/staff/staff.aspx"はアプリケーションのルートに行き、その中のスタッフに行き、次にstaff.aspxに行きます。プロジェクトがhttp://localhost/currentProject/にあるが、サイトがhttp://mysite.com/にあるため、http://mysite.com/staff/staff.aspxにデプロイされているため、http://localhost/currentProject/staff/staff.aspxにあるようなサイトで作業する場合は便利です。このようにして、同じコードが両方の方法で動作します。

関連する問題