重定向到与Razor c#和网页位于同一文件夹中的文件
我对网页使用默认路由。您可以使用像/mypage/myfistparam/mysecondparam这样的东西,它最终将位于/mypage.cshtml,并可以访问这些参数 我无法解决的是如何从mypage/param1重定向到同一当前目录中的页面重定向到与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(如果我在未知子文件夹中
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");
事先很抱歉,可能是出了什么问题,我不在办公桌上,但想法很好