
foreach ומציג כל מוצר.price, והמחיר הגיע כ-0 בלי שגיאה.[HttpPost], ואת הפעולה שמציגה את הטופס עם [HttpGet].RedirectToAction("Index"), כך שהמשתמש רואה את המוצר החדש.הטקסט המלא של הדקות הראשונות בהרצאה «ניהול בקשות Post» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
במהלך הסרטונים האחרונים אנחנו החזרנו ללקוח view שמציג לו מידע שהוא רצה לראות. הלקוח גלש לאיזשהו אקשן בקונטרולר, האקשן פנתה ל-view, יצרה view, והחזירה לו view עם תוצאות שהוא יכל לצפות בהן.
אבל מה קורה אם הלקוח רוצה גם לעדכן מידע בחזרה לשרת? לדוגמה, הוא יכול לראות מוצר והוא רוצה לעדכן אותו, או הוא יכול להוסיף מוצר חדש.
במצב כזה הלקוח יכול ללחוץ על איזשהו לחצן סדניט, ואנחנו רוצים בצד של השרת לקבל את התשובה שהגיעה מהלקוח ולטפל בה. ולכן אנחנו נכנסים לנושא של טיפול במה שנקרא פוסט.
פוסט זה מצב שבו הלקוח רוצה להוסיף מידע לשרת. יכול להיות שהוא גם ירצה לעדכן מידע, יכול להיות שהוא ירצה למחוק מידע, אבל כרגע אנחנו מתעסקים בקטע של הוספת מידע, שזה נקרא פוסט. בהמשך אנחנו נתעסק בכל האופציות האחרות כמו עדכון וכמו מחיקה.
אז אם הלקוח רוצה להעביר לנו מידע, הוא כמובן קודם כל צריך לראות דף שמציג לו מספר נתונים, הוא יכול להוסיף או לעדכן ואז לוחץ על איזשהו לחצה לסדמיט.
כל הנתונים האלה צריכים להישלח לשרת. אנחנו צריכים בקונטרולר לדעת איך לקבל אותם, איך לבנות את ה-view בצורה נכונה בכדי שאוטומטית המידע יגיע לקונטרולר ויתייצב בדיוק במאפיינים שאנחנו רוצים, וכמובן אחר כך אנחנו יכולים לקחת אותו ולשמור אותו בדאטאבייס או
לעשות איתו כל מיני דברים. אז נתחיל עם מודל בואו נוסיף מחלקה למודל מתארת שוב מוצר למוצר יש לנו כרגע רק product name ונקרא לזה unit price זה בעצם מחיר ליחידה אחת אז זה בעצם המודל שלנו ואנחנו יכולים ללכת ולבנות קונטרולר בואו נוסיף קונטרולר נקרא לו product controller ושימו לב שיש כאן
משהו שכל הזמן התעלמנו ממנו get נקודותיים product מה זה אומר הדבר הזה זה בעצם מציין לנו איך הלקוח יכול לגלוש לפונקציה הזאת הלקוח יכול לגלוש לפונקציה הזאת אם הוא בעצם גולש בשיטת get והוא מספיק שהוא נותן רק את השם של הפרודקט הוא כבר מגיע לפונקציה הוא לא צריך לרשום גם את השם שלה כי ראינו שזה פונקציה defaulted אז בעצם אנחנו
כרגע נתעלם מזה ובהמשך אנחנו נתעסק יותר עם get ופוסט יש לנו פה את פונקציית אינדקס וכל מה שאנחנו רוצים זה להציג רשימת מוצרים.
בהמשך אנחנו הולכים לגשת לדאטאבייס ולהביא את המידע ולפני זה אנחנו צריכים לדעת איך לבנות את האתר בשביל שיתמוך בזה.
ומה שאנחנו נעשה עכשיו זה רק נביא מידע שנשמר מקומית בצד של השרת. אז בואו נבנה פה איזושהי פונקציה שתחזיר לנו ליסט של פרודקט.
יש לנו צורך להגדיר את מרחב השמות. נקרא לפונקציה הזאת getProducts ובפונקציה הזאת אנחנו הולכים להביא מקומית בזיכרון של השרת על ידי אובייקט מיוחד שנקרא cash אז כרגע אנחנו פשוט נבדוק האם קיים באובייקט הזה מידע במקום מיוחד שנקרא products אם הדבר הזה שווה לנאל אז זה אומר שפעם ראשונה לקוח גולש
לנו לאתר או לקוח כלשהו ואנחנו רוצים לשמור מידע בתוך הcash הזה בצד של השרת וזה הולך להיות רשימת מוצרים חדשה נוסיף פה מספר מוצרים יש לנו פה את במבה יש לנו פה את ביסלי ויש לנו גם את כפלי, ובסוף אנחנו מחזירים את מה שיש בתוך ה-cash.
קיימת לנו הפונקציה get product שמחזירה לנו רשימה של מוצרים ואנחנו רוצים להביא את הרשימה הזאתי ולשלוח אותה בחזרה ב-action index כך שה-view של אינדקס יציג אותה, אז בואו נקרא לה מפה ונייצר view עבור האינדקס.
יש לנו פה view עבור האינדקס, בואו נגדיר שיש לנו כאן using, כלומר הגדרה של מרחב השמות, שם ה-Namespace ולבסוף הגדרה שהמודל שאנחנו מתעסקים איתו זה List של Product, מודל עם אם קטנה.
כעת אנחנו יכולים לראות את ה-List של המוצרים. נרוץ ב-For Each על כל Product בתוך המודל שקיבלנו מהקונטרולר ונציג כרגע את הפרטים של אותו מוצר.
יש לנו פה Span, Product Name, יש לנו פה את המוצר עצמו, יש לנו פה Span של ה-Price ויש לנו את המחיר.
לאחר מכן נראית איזה שתי שורות. בכדי להריץ אוטומטית את הדף הזה אנחנו צריכים ללכת לאפ סטארט, ראוט קונפיג ולהגדיר שהדיפולט קונטרולר זה פרודקטס, פונקציית אינדקס, אנחנו יכולים את זה לסגור ובואו נריץ.
וקיבלנו את רשימת המוצרים, יש לנו פה פרודקט ניים, באמבה יש לנו פרייס, פרודקט ניים ביסלי ופרייס, פרודקט ניים כפלי ופרייס.
לעת אנחנו רוצים לבצע פעולה שבה המשתמש יוכל להוסיף מוצר חדש ואנחנו גם רוצים לראות אותו ברשימת המוצרים.