هل يمكن لأي أحد مساعدتي في الحصول على عنوان URL لصفحة العمل الحالية لـ ASP.NET في C #؟
جرب هذا :
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
قد تحتاج في بعض الأحيان إلى الحصول على قيم مختلفة من 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
مجرد مشاركة لأن هذا كان الحل الخاص بي بفضل مشاركة 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/"
إذا كنت تريد فقط الجزء بين http: // والشرطة المائلة الأولى
string url = Request.Url.Host;
سيعود stackoverflow.com إذا تم استدعاؤه من هذه الصفحة
إليك انهيار كامل
سوف request.rawurl يعطي محتوى الصفحة الحالية أنه يعطي المسار الدقيق الذي طلبته
استخدم HttpContext.Current.Request.RawUrl
إذا كنت ترغب في الحصول عليها
localhost:2806
من عند
http://localhost:2806/Pages/
ثم استخدام:
HttpContext.Current.Request.Url.Authority
نصيحة للأشخاص الذين يحتاجون إلى المسار/عنوان url في ملف global.asax ؛
إذا كنت بحاجة إلى تشغيل هذا في global.asax> Application_Start وأنت وضع تجمع التطبيقات متكامل فسوف تتلقى الخطأ أدناه:
طلب غير متوفر في هذا السياق استثناء في Application_Start.
في هذه الحالة ، تحتاج إلى استخدام هذا:
System.Web.HttpRuntime.AppDomainAppVirtualPath
الأمل سوف يساعد الآخرين ..
لقد هبطتني عملية البحث في هذه الصفحة ، لكنها لم تكن تمامًا ما كنت أبحث عنه. نشر هنا في حالة قيام شخص آخر بالبحث عما كنت عليه في هذه الصفحة أيضًا.
هناك طريقتان للقيام بذلك إذا كان لديك فقط قيمة سلسلة.
طريقة .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
طريقة ريجكس:
أعتقد أنه يكفي للعودة إلى المسار المطلق ..
Path.GetFileName( Request.Url.AbsolutePath )
باستخدام System.IO ؛