ASP.NET MVC: בעיה בהחזרת תצוגה
-
בשעה טובה התחלתי ללמוד ASP.NET!!
למדתי קצת HTML, CSS ו - javascript. לא לעומק.. HTML ו CSS קצת משעממים.. כי זה הרבה יותר להתעסק בעיצוב ופחות בתכנות :roll:
JS דווקא מעניינת, אך המדריכים באינטרנט די בסיסיים ואין בהם חידושים מיוחדים (מלבד ללמד את התחביר של השפה, דהיינו איך לכתוב לולאה ופונקציה..).
לכן, עברתי לASP.NET MVC וממה שקראתי (בספר MVC 4) הופתעתי לטובה מהיכולות שלו (כל מחוללי הHTML הדינמיים ליצירת קוד HTML, בדיקות האימות המובנות לצד לקוח, ה EF ועוד..) ובטח אתם קוראים וצוחקים עלי שרק עכשיו אני מגלה את אמריקה :lol: כבר מזמן צעקנו עליך לעבור לווב!!!
(למרות שאני מתגעגע לפשטות של WPF.. אמנם שם לא עבדתי בתבנית של MVVM..).ניגש לעניין,
עבדתי לפי המדריך הזה.
בפוסט הזה הוא מסביר איך לכתוב מתודה בבקר שאמורה לקבל את הערכים שהמשתמש הזין בטופס ולשמור אותם בשרת, ואח"כ זה אמור להיות מוצג בחזרה בדף של תצוגת הפריטים. (בשלב זה הוא עובד בלי EF).
אלא, שזה לא עובד לי. זה מציג לי את הרשימה הראשונית. אח"כ פותח לי את הטופס, וכשאני שולח את הנתונים הוא מחזיר אותי לדף המקורי (כמו שצריך) אולם, לא מעדכן את הנתונים. אין לי מושג מה הבעיה. ניסיתי לדבג אבל זה נראה שהכל עובד כמו שצריך, רק משום מה הוא לא מרענן את התצוגה בחזרה..
זה הקוד שכתבתי:[HttpPost] public ActionResult Create(Group group) { if (string.IsNullOrEmpty(group.Name)) { this.ModelState.AddModelError("Name", "אנא הזן שם לקבוצה"); return View(group); } AddressBookDB db = AddressBookDB.Create(); db.Root.Items.Add(group); return RedirectToAction("Index"); }
תודה רבה מראש לכולם!!
פורסם במקור בפורום CODE613 ב11/10/2015 23:36 (+03:00)
-
הבעיה כנראה שלא השתמשת במשתנה ססטי לשמירת מופע של AddressBookDB.
יש לך בAddressBookDB את הקוד דלהלן?public static AddressBookDB Create() { if (instance == null) { instance = new AddressBookDB(); } return instance; }
אם כן זה מפליא אותי. שים נקודת עצירה בשורה 5. זה אמור לעצור פעם אחת בלבד.
פורסם במקור בפורום CODE613 ב12/10/2015 09:38 (+03:00)
-
היה לי את המתודה הזאת.
שמתי נקודת עצירה, ואכן הוא עוצר רק בפעם הראשונה שאני קורא למתודה, בשאר הפעמים הוא לא עוצר.
אבל בכל אופן זה לא מציג לי שום דבר חדש, רק את הנתונים הראשוניים שנטענים עם התוכנית.
מה יכולה להיות הבעיה?
תודה רבה!פורסם במקור בפורום CODE613 ב12/10/2015 10:13 (+03:00)
-
בנוגע לJS
פה יש חומר ממש טוב
http://www.isoc.org.il/openacademy/html5/lecturers.php?course_id=0&session_id=0&lecturer_id=10&v=1פורסם במקור בפורום CODE613 ב12/10/2015 11:21 (+03:00)
-
בנוגע לJS
פה יש חומר ממש טוב
http://www.isoc.org.il/openacademy/html5/lecturers.php?course_id=0&session_id=0&lecturer_id=10&v=1תודה רבה!!
הרצאה ממש יפה ובהירה! הוסיפה לי הרבה.
ובכלל ראיתי שיש שם באתר עוד הרצאות בנושאים מעניינים.פורסם במקור בפורום CODE613 ב12/10/2015 13:02 (+03:00)
-
-
תודה רבה!!
הטעות שלי הייתה שבמתודה Index של הקונטרולר Group, כשקראתי למתודה ששומרת את הנתונים, בטעות כל פעם הצבתי שם מופע חדש.. כך שכל פעם הוא התייחס למופע החדש ולא למופע הקודם שאליו צורפו הנתונים..
במקום לכתוב כך:
AddressBookDB db = AddressBookDB.Create(); שהמתודה הזאת בודקת אם נוצר מופע ורק אם לא יוצרת חדש..לגבי ההרצאה על JS, דווקא הנקודה שהוא מאוד מתלהב ממנה - מרתיעה אותי..
הוא טוען שהייתרון הגדול של השפה הוא בהיותה דינמית ושאין צורך להגדיר את סוגי המשתנים, ואין צורך לכתוב מחלקות. ואפשר לשנות בזמן ריצה הכל.
אבל דווקא אותי זה מרתיע כיון שנראה לי שהנוקשות של השפות הסטטיות היא היתרון שלהם, כיון שככה אנחנו מונעים באגים ותקלות, והמתכנת לא סתם זורק את הקוד מהשרוול, אלא מתכנן וחושב, ולכל דבר יש תפקיד מוגדר. מה גם שגם הוא מודה שקשה הרבה יותר לדבג תוכניות בJS..נמצא שהייתרון שלה הוא שהיא רצה בצד הלקוח, וכך אנו מורידים את העומס מהשרת ומעלים את הביצועים של התכנית.
פורסם במקור בפורום CODE613 ב12/10/2015 16:32 (+03:00)