在经过路由配置映射之后如何在页面中获得当前请求的实际的地址或者实际的物理地址.
主要想实现网站某个文件下的访问权限。 通过HttpContext.Current.Request都无法获得实际的地址
感谢大家的回答 目前问题还没有得到解决 我已经转换了个思路来解决这个需求了
不经过路由配置映射,你如何通过 HttpContext.Current.Request 获得实际地址的?
楼主,我其实对你很愤怒
不懂``这不是逻辑混乱了`请求的是路由映射后的地址吧.
你要获取的实际地址是说的文件路径吗?
当前controller、action的获取
RouteData.Route.GetRouteData(this.HttpContext).Values["controller"]
RouteData.Route.GetRouteData(this.HttpContext).Values["action"]
或
RouteData.Values["controller"]
RouteData.Values["action"]
如果在视图中可以用
ViewContext.RouteData.Route.GetRouteData(this.Context).Values["controller"]
ViewContext.RouteData.Route.GetRouteData(this.Context).Values["action"]
或
ViewContext.RouteData.Values["controller"]
ViewContext.RouteData.Values["action"]
【1】获取 完整url
(协议名+域名+虚拟目录名+文件名+参数)
string url=Request.Url.ToString();
【2】获取 虚拟目录名+页面名+参数:
string url=Request.RawUrl;
(或 string
url=Request.Url.PathAndQuery;)
【3】获取
虚拟目录名+页面名:
string url=HttpContext.Current.Request.Url.AbsolutePath;
(或
string url= HttpContext.Current.Request.Path;)
【4】获取 域名:
string
url=HttpContext.Current.Request.Url.Host;
【5】获取 参数:
string url=
HttpContext.Current.Request.Url.Query;
【6】获取 端口:
Request.Url.Port
通过HttpContext.Current.Request都无法获得实际的地址,
HttpContext.Current.Request ,楼主这个你是百度的吧,这个本来就不能获取到Url地址,
楼上的回复很全面了,应该能解决你的问题了吧!
Request.Url.AbsolutePath 路径
Request.Url.AbsoluteUri Url