מדריך ASP.NET MVC

מדריך ASP.NET MVC – תקינות הקלט – פעולות בסיסיות

‏ • Hi Tech

בפרק הקודם למדנו כיצר להגדיר Action חדש היודע לקבל את הנתונים שנשלחים מה-Browser. בפרק זה אנו נלמד כיצד לבצע בדיקות תקינות על הקלט ולהציג הודעות למשתמש.

להורדת הקוד של הפרק הקודם לחץ כאן

פתח את הקובץ: Views\Group\Create.cshtml
הקוד המעניין בתוכו נראה כך:

<div class="editor-label">
    @Html.LabelFor(model => model.Name)
</div
>
<
div class="editor-field">
    @Html.EditorFor(model => model.Name)
    @Html.ValidationMessageFor(model => model.Name)
</div
>

להזכירך, קוד זה יוצר אוטומטית ע"י Visual Web Developer. שים לב לקריאה לפונקצית העזר Html.ValidationMessageFor. קריאה זו בודקת האם קיימת הודעת שגיאה עבור השדה Name בתוך אובייקט השירות ModelState. במידה והודעה שכזו נמצאה אזי ייכתב ה-HTML המתאים.

כלומר, על מנת להציג הודעות למשתמש עלינו לעדכן את ה-ModelState בתוך ה-Action המתאים.

פתח את הקובץ Controllers\GroupController.cs וזהה את הפונקציה Create. יש לעדכן אותה באופן הבא:

[HttpPost]
public ActionResult Create(Group group)
{
  if (string.IsNullOrEmpty(group.Name))
  {
    this.ModelState.AddModelError("Name",
"Please specify a name");
    return View(group);
  }

  AddressBookDB db = AddressBookDB.Create();
  db.Root.Items.Add(group);

  return RedirectToAction("Index");
}

שים לב לקריאה לפונקציה AddModelError. פונקציה זו רושמת שגיאה חדשה בתוך ה-ModelState. ה-View ימצא את השגיאה ויציג אותה למשתמש.

הרץ את הפרויקט ונסה לייצר קבוצה חדשה ללא שם. שים לב להודעת השגיאה שמוחזרת מהשרת:

image

בפרק זה למדנו כיצד ניתן לעדכן את ה-ModelState ולהכניס לתוכו שגיאות. כמו כן הראינו כי ה-View יכול להשתמש בפונקציות עזר המתחקרות את ה-ModelState ומציגות את השגיאות מתוכו.

בפרק הבא נלמד כיצד להשתמש ב-Data Annotation ולצמצם עוד יותר את הקוד שמבצע את תקינות הקלט.

תגיות: , , , ,

תגובות בפייסבוק

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!