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

Get Current.Request.Url in mvc application having a .aspx extension

我有一个ASP.NET MVC 3应用程序,其中我必须将扩展名为.aspx的请求映射到另一个路由。我要做的是在应用程序启动中获取当前请求的URL。但问题是,它运行良好,所有的URL都没有.aspx扩展名,但在一个URL中用于ex(http://example.com/products/5/16/eettafels.aspx)它只显示http://example.com/

但是,对于http://example.com/products/5/16/eettafels,它显示了正确的路径。

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

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

有人知道我做错了什么吗


虽然这是一个非常古老的职位。

我只是粘贴ha doan链接到的代码,这样任何人登录这个问题都会更容易。

1
2
3
4
5
6
7
8
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保存在viewbag或tempdata中,比如@ifitkhar,以防您打算重定向,然后在以后要返回的操作中使用它。

1
2
3
4
5
6
7
public class ProductsController
{
    protected override void OnActionExecuting(ActionExecutingContext filterContext){
        TempData["previousUrl"] = HttpContext.Current.Request.Url.AbsoluteUri;
        base.OnActionExecuting(filterContext);
    }
}