Server Execute
Server.Execute

אם אני רוצה לשלב בתוך הדף שלי פלט של דפים אחרים במערכת(לא header  או footer שאותם ניתן לשלב ב masterpage...), משהו שיהיה תלוי באיזה משתנה למשל, אז בעבר הלא רחוק היה נהוג להשתמש ב include, למשל, אם נכנסתי לדף בתור משתמש רגיל אזי הייתי רוצה לכלול את הקובץ:
<-- #include File = "c:\Inetpub\wwwroot\MyApplication\userWelcome.asp" -->
ואם בתור מנהל אז קובץ אחר...
<-- #include File = "c:\Inetpub\wwwroot\MyApplication\ManagerWelcome.asp" -->

הבעיה עם הקוד הזה היא שהשרת היה מריץ את הקובץ שאני רוצה להכליל, עוד לפני שהוא בודק את התנאי שלי, מה שאומר שהוא בעצם הריץ גם את הקובץ למנהל וגם את הקובץ למשתמש רגיל בעת הכניסה לדף, ורק אז היה בודק את התנאי והיה מציג את התוכן שרציתי.
ואם היו לי 8 כאלה בדף...?

בשביל זה יש את Server.Execute... פשוט מאוד, פשוט להעביר לו את הכתובת של הדף (המקומי בלבד!) שאנו רוצים להריץ, והפלט שלו יתווסף לדף שאני מריץ עכשיו. נניח שאני רוצה לכלול בגוף הדף הודעה בהתאם לשפת המשתמש (למרות שיש שיטות טובות יותר כמובן...), אזי הקוד שלנו יהיה :

<html>
<body>
<H1>Company Name</H1>
 <% string lang = Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"];
lang = lang.SubString(0,2);
Server.Execute(lang+"Welcome.asp") ; %>

 </body> </html>

להורדת הפרוייקט

msdn at microsoft

טוען נתונים...
אהבתם?
המליצו לאחרים!

נהניתם? בעיות? הערות?
אני רוצה לשמוע!
rss feed