Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重定向到与Razor c#和网页位于同一文件夹中的文件_C#_Razor_Asp.net Webpages - Fatal编程技术网

重定向到与Razor c#和网页位于同一文件夹中的文件

重定向到与Razor c#和网页位于同一文件夹中的文件,c#,razor,asp.net-webpages,C#,Razor,Asp.net Webpages,我对网页使用默认路由。您可以使用像/mypage/myfistparam/mysecondparam这样的东西,它最终将位于/mypage.cshtml,并可以访问这些参数 我无法解决的是如何从mypage/param1重定向到同一当前目录中的页面 Response.Redirect("newpage"); 将重定向到/mypage/newpage。我可以使用应用程序相对~ Response.Redirect("~/newpage"); 但这将重定向到/newpage(如果我在未知子文件夹中

我对网页使用默认路由。您可以使用像/mypage/myfistparam/mysecondparam这样的东西,它最终将位于/mypage.cshtml,并可以访问这些参数

我无法解决的是如何从mypage/param1重定向到同一当前目录中的页面

Response.Redirect("newpage");
将重定向到/mypage/newpage。我可以使用应用程序相对~

Response.Redirect("~/newpage");
但这将重定向到/newpage(如果我在未知子文件夹中,则不好)

这应该很简单,但我想这与默认路由行为有关

有什么想法吗?

试试这个:

 Response.Redirect(VirtualPathUtility.ToAbsolute("~/newpage"));
或者这个(相同的结果):

编辑(误解)

我能想象的最好的方法是扩展方法:

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");
事先抱歉,可能是出了什么问题,我不在办公桌上,但我的想法很好。

试试这个:

 Response.Redirect(VirtualPathUtility.ToAbsolute("~/newpage"));
或者这个(相同的结果):

编辑(误解)

我能想象的最好的方法是扩展方法:

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");
事先很抱歉,可能是出了什么问题,我不在办公桌上,但想法很好