The Uri class in .NET contains methods for getting at parts of the Uri. In your ASP.NET MVC project you can get the current URL from within a Controller using:
Uri currentUrl = Request.Url;From this object you can then get lots of information about the current URL. I find that each time I use it, I have to look up which method gives what. Here is a quick cheatsheet for the methods and properties:
For the URL: https://github.com/brainwipe/NJsonApiCore/search?utf8=%E2%9C%93&q=jsonapi&type=
| Uri Property | Value |
|---|---|
| AbsolutePath | /brainwipe/NJsonApiCore/search |
| AbsoluteUri | https://github.com/brainwipe/NJsonApiCore/search?utf8=%E2%9C%93&q=jsonapi&type= |
| Authority | github.com |
| DnsSafeHost | github.com |
| Fragment | |
| Host | github.com |
| HostNameType | Dns |
| IsAbsoluteUri | True |
| IsDefaultPort | True |
| IsFile | False |
| IsLoopback | False |
| IsUnc | False |
| LocalPath | /brainwipe/NJsonApiCore/search |
| OriginalString | https://github.com/brainwipe/NJsonApiCore/search?utf8=%E2%9C%93&q=jsonapi&type= |
| PathAndQuery | /brainwipe/NJsonApiCore/search?utf8=%E2%9C%93&q=jsonapi&type= |
| Port | 443 |
| Query | ?utf8=%E2%9C%93&q=jsonapi&type= |
| Scheme | https |
| Segments | / brainwipe/ NJsonApiCore/ search |
| UserEscaped | False |
| UserInfo |
C# .net console gist for generating this output and a handy Markdown table builder.