假设我的网址是“ https://www.mywebsite.com/app/company/employees/5”或“ https://www.mywebsite.com/company/employees?id=5&name=jack”
我正在寻找一种获取“基本”路径或任何所谓路径的方法。就像两者的“基本”路径都将是“ / app / company / employees”一样,而没有“ / 5”部分或“?id = 5&name = jack”部分。
我正在使用string.Join("/", request.ApplicationPath, request.RequestContext.RouteData.Values["controller"], request.RequestContext.RouteData.Values["action"])
来获取它(请求是HttpRequestBase),但是它并没有按照我想要的方式工作,因为它也包含Index动作。就像Url是“ https://www.mywebsite.com/app/company”一样,我希望“ / app / company /”而不是“ / app / company / Index”。我可以随时检查操作是否为Index,但对我来说感觉像是一种“代码异味”。
甚至有代码味吗?有什么适当的方法可以做到这一点?
答案 0 :(得分:0)
Uri类提供许多属性https://docs.microsoft.com/en-us/dotnet/api/system.uri?view=netframework-4.7.2
尝试一下
string val = HttpContext.Current.Request.Url.AbsolutePath;
或者如果您的请求变量是HttpRequest对象,请尝试:
string val = request.Url.AbsolutePath;
答案 1 :(得分:0)
使用HttpContext.Current.Request.Url.AbsolutePath