Может ли кто-нибудь помочь мне получить URL-адрес текущей рабочей страницы ASP.NET на С#?
Как получить URL-адрес текущей страницы в С#
Ответ 1
Попробуйте следующее:
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
Ответ 2
Иногда вы можете получать разные значения из URL.
Ниже приведен пример различных способов извлечения разных частей URL
ПРИМЕР: (Пример URL)
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2
CODE
Response.Write("<br/> " + HttpContext.Current.Request.Url.Host);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Authority);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Port);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsolutePath);
Response.Write("<br/> " + HttpContext.Current.Request.ApplicationPath);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsoluteUri);
Response.Write("<br/> " + HttpContext.Current.Request.Url.PathAndQuery);
OUTPUT
localhost
localhost:60527
60527
/WebSite1test/Default2.aspx
/WebSite1test
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString1=2
/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2
Вы можете скопировать пасту над примером кода и запустить ее в приложении веб-формы asp.net с другим URL-адресом.
Я также рекомендую читать ASP.Net Routing, если вы можете использовать ASP Routing, тогда вам не нужно использовать традиционный URL-адрес с строкой запроса.
http://msdn.microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx
Ответ 3
Просто поделился, так как это было моим решением благодаря сообщению Canavar.
Если у вас есть что-то вроде этого:
"http://localhost:1234/Default.aspx?un=asdf&somethingelse=fdsa"
или вот так:
"https://www.something.com/index.html?a=123&b=4567"
и вам нужна только часть, которую пользователь будет вводить, тогда это будет работать:
String strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;
String strUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");
что приведет к следующим:
"http://localhost:1234/"
"https://www.something.com/"
Ответ 4
если вам просто нужна часть между http://и первой косой чертой
string url = Request.Url.Host;
будет возвращать stackoverflow.com, если вызвано с этой страницы
Здесь полная разбивка
Ответ 5
request.rawurl предоставит содержимое текущей страницы он дает точный путь, который вам нужен
использовать HttpContext.Current.Request.RawUrl
Ответ 6
Если вы хотите получить
localhost:2806
из
http://localhost:2806/Pages/
затем используйте:
HttpContext.Current.Request.Url.Authority
Ответ 7
подсказка для людей, которым нужен путь /url в файле global.asax;
Если вам нужно запустить это в global.asax > Application_Start, а режим пула приложений интегрирован, вы получите сообщение об ошибке ниже:
Запрос в этом контексте не доступен. Application_Start.
В этом случае вам нужно использовать это:
System.Web.HttpRuntime.AppDomainAppVirtualPath
Надежда поможет другим.
Ответ 8
Поиск приземлился на этой странице, но это было не совсем то, что я искал. Проводятся здесь, если кто-то еще ищет то, что я приземлялся на этой странице тоже.
Существует два способа сделать это, если у вас есть только строковое значение.
Способ .NET:
То же, что и @Canavar, но вы можете создать новый объект Uri
String URL = "http://localhost:1302/TESTERS/Default6.aspx";
System.Uri uri = new System.Uri(URL);
что означает, что вы можете использовать те же методы, например.
string url = uri.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx
string host = uri.host
// localhost
Регулярный путь:
Ответ 9
Я думаю, его достаточно, чтобы вернуть абсолютный путь.
Path.GetFileName( Request.Url.AbsolutePath )
с использованием System.IO;