DCSIMG
מה זה מטילדה - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

מה זה מטילדה

 

מה משמש אותנו הסימון ~ (טילדה) בעולם ה - asp.net.

 
 
שאל אותי סטודנט מה המשמעות של כתיבת לינקים בצורה הבאה
~/Folder/Page.aspx
 
 
נניח שמבנה הפרוייקט שלנו נראה כך:
 
Page1.aspx
Folder1/Page2.aspx
Folder1/Folder2/Page3.aspx
 
ובכל דף נרצה שיהיה לנו לינקים לכל העמודים (נניח שיש לנו Master Page שבו נייצר את הלינקים) ונכתוב את הקוד הבא
 

<a href="Page1.aspx">Page1</a>

<a href="Folder1/Page2.aspx">Page2</a>

<a href="Folder1/Folder2/Page3.aspx">Page3</a>

 
כשניהיה בדף הראשון כל הלינקים יעבדו
במידה וניהיה בדף השני שאר הלינקים לא יעבדו מכיוון שהנתיב הוא יחסי - כלומר אם אנחנו נמצאים בתיקייה שנקראת Folder1 ואנחנו לוחצים על לינק של Page1 אנחנו בעצם מחפשים דף שנקרא Page1 בתיקייה Folder1 מה שכמובן לא קיים מכיוון ש - Page1 קיים בתיקייה מעל, וכדי להגיע אליו הלינק צריך להיראות בצורה הבאה
 

<a href="../Page1.aspx">Page1</a>

שזה אומר - מהמיקום היחסי (כלומר Folder1) תעלה תיקייה אחד למעלה ותלך לדף שנקרא Page1.
הבעייה שכמובן כשניהיה בתיקיית Folder2 הלינק לדף הראשון לא יעבוד מכיוון שצריך להעלות שני תיקיות.
 
מה שמביא אותנו למסקנה שכתובות יחסיות הם דבר לא טוב כיוון שלא נוכל תמיד לדעת מה הייחס למיקום הספציפי שבו אנחנו נמצאים.
 
הפיתרון ב - asp.net הוא להשתמש בנתיב אבסולוטי - כלומר לא נתייחס למיקום שבו אנחנו נמצאים כרגע אלא לתחילת האפליקצייה - וכדי לעשות את זה נשתמש ב - ~
 

<a href="~/Page1.aspx" runat="server">Page1</a>

<a href="~/Folder1/Page2.aspx" runat="server">Page2</a>

<a href="~/Folder1/Folder2/Page3.aspx" runat="server">Page3</a>

 
כעת כל הלינקים יעבדו בכל הדפים מכיוון ש ~ מתורגומת לנתיב של תחילת האפליקצייה.
 
הדבר היחיד שצריך לשים לב זה שברגע שהשתמשתם ב ~ האלמנט צריך להיות מוכר בשרת בעזרת runat=server
פורסם: Aug 05 2010, 08:57 AM by Shlomo | with 3 comment(s)
תגים:, ,

תוכן התגובה

danielisimo כתב/ה:

אגב

לאנשים שבאים מעולם הלינוקס טילדה זה קיצול לתקית הבית (home directory)

אפשר לחשוב על כך כאותו רעיון לתקית הבית של האפליקציה.

# August 5, 2010 6:33 PM

Eran Sakal כתב/ה:

זה אומר שאם יש לנו תת-אפליקציה תחת אפליקציה אחרת, אזי התילדה תהיה באופן יחסי לתת-אפליקציה.

# August 5, 2010 10:59 PM

dan amiga כתב/ה:

שלמה - חסרה פיסת האינפורמציה הכי הכי חשובה. אחד הדברים החשובים ביותר שאפשר לעשות באמצעות טילדה הוא להשתמש באלמנט URLMAPPING בתוך הWEB.CONFIG כדי לשנות URLים על מנת ליצור URL REDIRECTION וכו'. קרא באינטרנט ועדכן הכתבה!

בצורה זו אוכל לשנות את המיקום הפיזי של הדפים באתר שלי מבלי לשנות URLים בדפים שונים 

# August 6, 2010 12:27 PM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 6 and 5 and type the answer here:


Enter the numbers above: