asp.net - مشكلة - يو آر إل




الحصول على عنوان URL لصفحة ASP.Net في التعليمات البرمجية الخلفية (7)

Request.Url.Host

هذا السؤال لديه بالفعل إجابة هنا:

لدي صفحة ASP.Net التي سيتم استضافتها على ملقمين مختلفين ، وأريد الحصول على عنوان URL للصفحة (أو حتى أفضل: الموقع الذي تتم استضافة الصفحة به) كسلسلة للاستخدام في التعليمات البرمجية خلف . أيه أفكار؟


أنا استخدم هذا في رمز بلدي في فئة مخصصة. يأتي في متناول اليد لإرسال رسائل البريد الإلكتروني مثل [email protected] "no-reply @" + BaseSiteUrl يعمل بشكل جيد على أي موقع.

// get a sites base urll ex: example.com
public static string BaseSiteUrl
{
    get
    {
        HttpContext context = HttpContext.Current;
        string baseUrl = context.Request.Url.Authority + context.Request.ApplicationPath.TrimEnd('/');
        return baseUrl;
    }

}

إذا كنت ترغب في استخدامه في codebehind تخلص من السياق.


إذا كنت تريد تضمين أي سلسلة فريدة في النهاية ، على غرار example.com؟id=99999 ، فاستخدم ما يلي

Dim rawUrl As String = Request.RawUrl.ToString()

إذا كنت تريد فقط استخدام الجزء الخاص بالنظام والسلطة من الطلب (البروتوكول والمضيف والمنفذ)

Request.Url.GetLeftPart(UriPartial.Authority)

انا استخدم

Request.Url.GetLeftPart(UriPartial.Authority) +
        VirtualPathUtility.ToAbsolute("~/")

باستخدام ملف js يمكنك التقاط ما يلي ، والتي يمكن استخدامها في codebehind أيضا:

<script type="text/javascript">
    alert('Server: ' + window.location.hostname);
    alert('Full path: ' + window.location.href);
    alert('Virtual path: ' + window.location.pathname);
    alert('HTTP path: ' + 
        window.location.href.replace(window.location.pathname, ''));    
</script>

Request.Url.GetLeftPart(UriPartial.Authority) + Request.FilePath + "?theme=blue";

سيعطيك المسار الكامل للصفحة التي تجلس عليها. أضفت في querystring.





asp.net