it-swarm.asia

كيفية الحصول على عنوان URL للصفحة الحالية في C #

هل يمكن لأي أحد مساعدتي في الحصول على عنوان URL لصفحة العمل الحالية لـ ASP.NET في C #؟

607
apekshabs

جرب هذا :

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
851
Canavar

قد تحتاج في بعض الأحيان إلى الحصول على قيم مختلفة من 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

445
Learning

مجرد مشاركة لأن هذا كان الحل الخاص بي بفضل مشاركة 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/"
102
Soenhay

إذا كنت تريد فقط الجزء بين http: // والشرطة المائلة الأولى

string url = Request.Url.Host;

سيعود stackoverflow.com إذا تم استدعاؤه من هذه الصفحة

إليك انهيار كامل

45
roman m

سوف request.rawurl يعطي محتوى الصفحة الحالية أنه يعطي المسار الدقيق الذي طلبته

استخدم HttpContext.Current.Request.RawUrl

19
Randhi Rupesh

إذا كنت ترغب في الحصول عليها

localhost:2806 

من عند

http://localhost:2806/Pages/ 

ثم استخدام:

HttpContext.Current.Request.Url.Authority
14
Thomas

نصيحة للأشخاص الذين يحتاجون إلى المسار/عنوان url في ملف global.asax ؛

إذا كنت بحاجة إلى تشغيل هذا في global.asax> Application_Start وأنت وضع تجمع التطبيقات متكامل فسوف تتلقى الخطأ أدناه:

طلب غير متوفر في هذا السياق استثناء في Application_Start.

في هذه الحالة ، تحتاج إلى استخدام هذا:

System.Web.HttpRuntime.AppDomainAppVirtualPath

الأمل سوف يساعد الآخرين ..

12
dvdmn

لقد هبطتني عملية البحث في هذه الصفحة ، لكنها لم تكن تمامًا ما كنت أبحث عنه. نشر هنا في حالة قيام شخص آخر بالبحث عما كنت عليه في هذه الصفحة أيضًا.

هناك طريقتان للقيام بذلك إذا كان لديك فقط قيمة سلسلة.

طريقة .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

طريقة ريجكس:

الحصول على أجزاء من URL (Regex)

9
Ben Pearson

أعتقد أنه يكفي للعودة إلى المسار المطلق ..

 Path.GetFileName( Request.Url.AbsolutePath )

باستخدام System.IO ؛

6
Mayank Pathak