This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي

ValidationExtensions الفئة

Visual Studio 2010

يوفرلدعم للتحقق من صحة الإدخال من نموذج HTML.

مساحة الاسم:  System.Web.Mvc.Html
التجميع:  System.Web.Mvc (في System.Web.Mvc.dll)

public static class ValidationExtensions

فئة الValidationExtensions تحتوي على طرق تقوم بتمديد فئة ال HtmlHelper. الأسلوب ValidationMessage يعرض رسالة تحقق من الصحة إذا كان الحقل المحدد يحتوي على إدخال غير صالح. الأسلوب ValidationSummary يعرض قائمة لكل رسائل التحقق من الصحة على الصفحة. تتطلب هذه الطرق أن يكون العرض مكتوب بشدة.

إذا كان لا يمكن للمثيل DefaultModelBinder ربط قيمة حقل النموذج بالطراز, يقوم الموثق بإضافة خطأ للكائن ModelState. عند تقديم العرض، يتم عرض رسائل التحقق من الصحة وملخص التحقق من الصحة اعتماداً على خاصية Errors الكائن ModelState.

يمكنك التحكم بمظهر رسائل التحقق من الصحة ملخص التحقق من الصحة عن طريق تعديل فئات ورقة الأنماط المتتالية (CSS) التالية في ملف Site.css:

  • input-validation-error . يتم تطبيق هذه القاعدة على العنصر input المقدّم بواسطة مساعد الأسلوب TextBox.

  • field-validation-error . يتم تطبيق هذه القاعدة على العنصر span المقدّم بواسطة الأسلوب ValidationMessage.

  • validation-summary-error . يتم تطبيق هذه القاعدة على العنصر ul المقدّم بواسطة الأسلوب ValidationMessage.

يظهر المثال التالي طريقة واحدة لاستخدام ValidationSummaryو أساليبValidationMessage في تطبيقات MVC . يحدد هذا المثال فئة طراز باسم Person. يؤسس الفئة Person متطلبات العضو الأساسية. على سبيل المثال، Nameيجب أن تكون سلسلة ويجب أن تكون Age عدد صحيح.


public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Phone { get; set; }
    public string Email { get; set; }
}


العرض Create يمكّن المستخدم من إنشاء كائن Personجديد. يتم وضع اتصال بالأسلوب ValidationSummary في طريقة عرض قبل نموذج الإدخال. إذا تم إرسال قيمة غير صالحة، يقوم الملخص بعرض رسالة خطأ. يتم إجراء استدعاء للأسلوب ValidationMessage بعد كل نموذج حقل. إذا كان حقل النماذج المرتبط يحتوي على قيمة غير صالحة، يتم وضع علامة النجمة (*) على الحقل .


<h2>Create</h2>

<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>

<% using (Html.BeginForm()) {%>

    <fieldset>
        <legend>Fields</legend>
        <p>
            <label for="Name">Name:</label>
            <%= Html.TextBox("Name") %>
            <%= Html.ValidationMessage("Name", "*") %>
        </p>
        <p>
            <label for="Age">Age:</label>
            <%= Html.TextBox("Age") %>
            <%= Html.ValidationMessage("Age", "*") %>
        </p>
        <p>
            <label for="Phone">Phone:</label>
            <%= Html.TextBox("Phone") %>
            <%= Html.ValidationMessage("Phone", "*") %>
        </p>
        <p>
            <label for="Email">Email:</label>
            <%= Html.TextBox("Email") %>
            <%= Html.ValidationMessage("Email", "*") %>
        </p>
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>

<% } %>

<div>
    <%=Html.ActionLink("Back to List", "Index") %>
</div>


عند إرسال النموذج، أسلوب إجراءCreate يقوم بمعالجة الطلب. في هذا المثال، الأسلوب Create يتحقق من صحة الأخطاء، مثل ما إذا كان رقم الهاتف وعنوان البريد الإلكتروني تتطابق مع التعابير النظامية التي تعرّف الإدخال الصالح. إذا تم العثور على خطأ رسالة خطأ، يًضاف رسالة خطأ إلى الكائن ModelState ويتم إعادة عرض طريقة العرض Createمظهرةً الأخطاء.


[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Person person)
{
    if (person.Name.Trim().Length == 0)
    {
        ModelState.AddModelError("Name", "Name is required.");
    }
    if (person.Age < 1 || person.Age > 200)
    {
        ModelState.AddModelError("Age", "Age must be within range 1 to 200.");
    }
    if (!Regex.IsMatch(person.Phone, @"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}"))
    {
        ModelState.AddModelError("Phone", "Phone number is invalid.");
    }
    if (!Regex.IsMatch(person.Email, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"))
    {
        ModelState.AddModelError("Email", "Email format is invalid.");
    }
    if (!ModelState.IsValid)
    {
        return View("Create", person);
    }

    people.Add(person);

    return RedirectToAction("List");
}


System.Object
  System.Web.Mvc.Html.ValidationExtensions

يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.
إظهار: