שאלה

flying pizi

New member
שאלה ../images/Emo3.gif

במחשב במשרד השתמשתי בפונקציה Server.MapPath() כדי לפוך URL יחסי למלא. אבל עכשיו כשהעברתי את הפרוייקט הבייתהאני לא מוצאת את הפונקציה הזאתי בשום מקום, ניסיתי להוסיף references אבל אני לא מוצאת את הreference המתאים. יכול להיות שזה בגלל שיש לי את הגירסא החינמית של האינטרנט או שאולי אני לא יודעת לחפש? מישהו מכיר את הפונקציה, או אולי פונקציה דומה שאני אוכל להשתמש בה?
 

Justin Angel

New member
קה פרובלמה מואי צ'יקיטה?

ניתן להשתמש ב-Server.MapPath רק בתוך ה-CodeBehinf של דפים (מחלקות שיורשות מ-System.Web.UI.Page) ושל UserControls (מחלקות שיורשות מ-System.Web.UI.UserControl) ומחלקות דומות כאלו. בכתיבת קוד במקומות אחרים אין גישה ישירה לאובייקט HttpServerUtility. בכדי להשתמש ב-Server.MapPath ממחלקות שאינן יורשות מפקד כלשהו צריך להשתמש בנתיב המלא של הבקשה:
HttpContext.Current.Server.MapPath()​
בנוסף אם כותבים כזה דבר בפרוייקט שאינו Web Site או Web Project צריך להוסיף Reference ל-System.Web (שקיים כברירת מחדל בפרוייקטי Web). מה שבפועל קורה שבתוך דפים למשל אנחנו כותבים Server.MapPath זה שקיים מאפיין (גם באנגלית: Property) ברמת הפקד שמקצרת לנו את הכתיבה.
// property in System.Web.UI.Page public HttpServerUtility Server { get { return this.Context.Server; } } // somewhere in myPage.aspx.cs this.Server.MapPath(".");​
כאשר this מתייחס למופע של Page, Server מתייחס למאפיין שראינו למעלה שמחזיר לנו מופע של HttpServerUtility, ו-MapPath היא מתודה של מופע של HttpServerUtility.
 
למעלה