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

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

0
وأضاف
الآراء: 5
إجابة مفصلة هنا stackoverflow.com/questions/593709/&hellip؛
وأضاف المؤلف Learning, مصدر
وأضاف المؤلف Kimball Robinson, مصدر

10 إجابة

هل تريد اسم الخادم؟ أو اسم المضيف؟

Request.Url.Host ala Stephen

Dns.GetHostName - Server name

Request.Url will have access to most everything you'll need to know about the page being requested.

0
وأضاف

أنا استخدم هذا في رمز بلدي في فئة مخصصة. يأتي في متناول اليد لإرسال رسائل البريد الإلكتروني مثل [email protected] "عدم الرد @" + 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 تخلص من السياق.

0
وأضاف

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

Dim rawUrl As String = Request.RawUrl.ToString()
0
وأضاف

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

Request.Url.GetLeftPart(UriPartial.Authority)
0
وأضاف
يتم نشر حل أفضل على stackoverflow.com/questions/567590/&hellip،
وأضاف المؤلف Kimball Robinson, مصدر
@ كيمبال أنا لست متأكدا من سلسلة سلاسل معا هو حل أفضل.
وأضاف المؤلف WDuffy, مصدر

Request.Url.Host

0
وأضاف

استخدم هذا:

Request.Url.AbsoluteUri

سيوفر لك هذا المسار الكامل (بما في ذلك http://.. .)

0
وأضاف
تذكر أن هذا سيتضمن أيضًا جزء الاستعلام (؟ key = value ....)
وأضاف المؤلف Marcel, مصدر
هذا لا يعمل إذا لم يتم استضافة التطبيق على جذر الخادم ولكن في دليل. إذا تمت استضافة التطبيق على www.contoso.com/app/ فسيتم إرجاع هذا www.contoso.com فقط
وأضاف المؤلف linkerro, مصدر

أواجه نفس المشكلة وحتى الآن وجدت:

new Uri(Request.Url,Request.ApplicationPath)

أو

Request.Url.GetLeftPart(UriPartial.Authأوity)+Request.ApplicationPath
0
وأضاف
Request.Url.GetLeftPart(UriPartial.Authority) + Request.FilePath + "?theme=blue";

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

0
وأضاف

انا استخدم

Request.Url.GetLeftPart(UriPartial.Authority) +
        VirtualPathUtility.ToAbsolute("~/")
0
وأضاف

باستخدام ملف 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>
0
وأضاف