קבלת הנתיב המלא באפליקציית MVC וב – WebForms

10 במרץ 2013

תגיות: , , ,
אין תגובות

לפעמים צריך לקבל נתיב מלא לכתובת אינטרנט, לדוגמא כדי לשלוח במייל.

באפליקציית MVC הקוד יראה כך:

Code Snippet
public static class UrlHelperExtension
{
    public static string AbsolutePath(this UrlHelper url, string virtualPath)
    {
        Uri requestUrl = url.RequestContext.HttpContext.Request.Url;

        return string.Format("{0}://{1}{2}",
                                requestUrl.Scheme,
                                requestUrl.Authority,
                                VirtualPathUtility.ToAbsolute(virtualPath));
    }
}

ואילו השימוש יראה כך:

Url.AbsolutePath("~/Controller/action");

התוצאה תהיה כזאת “http://localhost:7791/Controller/action” (כמובן שבסביבה האמיתית התוצאה תהיה מתאימה).

 

קוד מאוד דומה יהיה ב – WebForms

Code Snippet
public static string AbsolutePath(this HttpRequest request, string virtualPath)
{
    Uri requestUrl = request.Url;

    return string.Format("{0}://{1}{2}",
                            requestUrl.Scheme,
                            requestUrl.Authority,
                            VirtualPathUtility.ToAbsolute(virtualPath));
}

 

הסיבה היחידה לא להשתמש באותה פונקציה גם ב – MVC, מכיוון שהמשתנה Url (שהוא מסוג UrlHelper) כבר מוגדר בכל ה – Views, וניתן להשתמש בו.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *