2016-03-11 32 views
1

我正在使用默認路由與網頁..你可以使用像/ mypage/myfistparam/mysecondparam之類的東西,它最終會在/mypage.cshtml中訪問這些參數。使用Razor c#和網頁重定向到同一文件夾中的文件

我無法解決的是如何重定向到同一當前目錄中的頁面,以便從mypage/param1;

Response.Redirect("newpage"); 

將重定向到/ mypage/newpage。我可以使用應用程序相對〜;

Response.Redirect("~/newpage"); 

但將重定向到/ NEWPAGE(沒有好,如果我在一個未知的子文件夾)

這應該是簡單的,但我想它是與默認的路由行爲。

任何想法..?

回答

0

嘗試這種情況:

Response.Redirect(VirtualPathUtility.ToAbsolute("~/newpage")); 

或該(相同的結果):

Response.Redirect(Href("~/newpage")); // note that works only in razor 

EDIT(誤解)

,我可以想像的最好方法是一個擴展方法:

public static class MyExtensions 
{ 
    public static void RedirectToSameDirectory(this HttpContextBase context, string fileName) 
    { 
     var builder = new UriBuilder(context.Request.Uri); 
     builder.FileName = fileName; 
     context.Response.Redirect(builder.Uri.ToString()); 
    } 
} 

// in razor 
Context.RedirectToSameDirectory("filename"); 

對不起,可能有些事情是錯的,我不在我的辦公桌前,但這個想法很好。

相關問題