C# 在具有.aspx扩展名的mvc应用程序中获取Current.Request.Url

C# 在具有.aspx扩展名的mvc应用程序中获取Current.Request.Url,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个ASP.NET MVC 3应用程序,其中我必须将扩展名为.aspx的请求映射到另一个路由。我试图做的是在应用程序启动中获取当前请求url。但问题是,它在所有不带.aspx扩展名的url中都可以正常运行,但在用于ex的url中运行 它只显示 但是,它显示了正确的路径 所有代码都是一行简单的代码: string currentUrl = HttpContext.Current.Request.Url.ToString().ToLower(); 有人知道我做错了什么吗?虽然这是一篇很老的帖子

我有一个ASP.NET MVC 3应用程序,其中我必须将扩展名为.aspx的请求映射到另一个路由。我试图做的是在应用程序启动中获取当前请求url。但问题是,它在所有不带.aspx扩展名的url中都可以正常运行,但在用于ex的url中运行 它只显示

但是,它显示了正确的路径

所有代码都是一行简单的代码:

string currentUrl = HttpContext.Current.Request.Url.ToString().ToLower();

有人知道我做错了什么吗?虽然这是一篇很老的帖子

我只是粘贴了Ha Doan链接到的代码,以便任何人都能更容易地回答这个问题

string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx

string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx

string host = HttpContext.Current.Request.Url.Host;
// localhost

选中此选项,以便讨论此问题。现在,您可以覆盖在调用任何操作之前执行的控制器方法。然后,我建议您保留当前Url,如视图包中建议的@Ifitkhar,或TempData,以防您打算重定向,然后在以后要返回的操作中使用它

public class ProductsController
{
    protected override void OnActionExecuting(ActionExecutingContext filterContext){
        TempData["previousUrl"] = HttpContext.Current.Request.Url.AbsoluteUri;
        base.OnActionExecuting(filterContext);
    }
}

看一看你想重定向到.aspx页面url的方法?一种非常。。。这是一个301重定向seowh你为什么需要再次将Url地址小写?