Опубликован: 15.06.2011 | Доступ: свободный | Студентов: 708 / 59 | Оценка: 4.25 / 4.00 | Длительность: 14:09:00
Самостоятельная работа 3:

Web Matrix. Работа с Web Forms

Проверка введенных пользователем данных

Данная проверка необходима, если пользователь ввел не корректное значение или забыл заполнить текстовое поле при вводе данных.

1.В Form.cshtml заменим первый блок c кодом, следующим:

if (IsPost) 
     {
        var errors = false;
        var firstname = Request["firstname"];
        if (firstname.IsEmpty()) 
        {
            errors = true;
            @:Не заполненно поле с именем.<br />
        }
        var lastname = Request["lastname"];
        if (lastname.IsEmpty()) 
        {
            errors = true;
            @:Не заполненно поле с фамилией.<br />
        }
        var age = 0;
        if (Request["age"].IsInt()) 
        {
            age=Request["age"].AsInt();
        }
        else 
        {
            errors = true;
            @:Возраст должен быть числом.<br />
        }  
        var telephone = Request["telephone"];
        if (telephone.IsEmpty()) 
        {
            errors = true;
            @:Не заполненно поле с контактным номером.<br />
        }
        if (errors == false)
        {  
       <text>
          Вы ввели:<br />
          Имя сотрудника: @firstname<br />
          Фамилия сотрудника: @lastname<br />
          Возраст: @age<br />
          Контактный номер: @telephone<br/>
       </text>
        }
    }
}

Этот код, похож на замененный ранее код, но имеет ряд отличий. Первое отличие, это была введена переменная с именем errors и значением false, и в случае возникновения ошибки будет устанавливаться значение true. Второе отличие это использование функций IsEmpty(), которая возвращает значение true, если нужные поля не заполнены; и функция IsInt(),которая возвращает значение true, если возможно преобразовать строковое значение в целочисленное ( string в int ).

2.Результатом работы кода, при нажатии на кнопку "Добавить" с не заполненными полями:


Рис. 8.6.

Восстановление значений формы после Postback

1.Для сохранения данных формы, после отправки её на сервер, изменим код в теге <html></html> файла Form.cshtml, на код:

<!DOCTYPE html>
<html>
   <head>
       <title>Информация о сотрудниках</title>
   </head>
   <body>
     <form method="post" action="">
       <fieldset>
         <legend>Добавить сотрудника</legend>
         <table>
           <tr>
            <td><label for="FirstName">Имя:</label></td> 
            <td><input type="text" name="FirstName" 
               value="@Request["firstname"]" /></td>
           </tr>
           <tr>
            <td><label for="LastName">Фамилия:</label></td>
            <td><input type="text" name="LastName" 
               value="@Request["lastname"]" /></td>
           </tr>
           <tr>
            <td><label for="Age">Возраст:</label></td>
            <td><input type="text" name="Age" 
               value="@Request["age"]" /></td> 
           </tr>
           <tr>
            <td><label for="Telephone">Контактный номер:</label></td>
            <td><input type="text" name="Telephone"
               value="@Request["telephone"]"/></td>
           </tr>
           <tr>  
            <td>
             <input type="submit" value="Добавить" class="submit"/>
            </td>
           </tr>
        </table>
       </fieldset>
     </form>
   </body>
</html>

Атрибут value, элемента <input>, теперь устанавливается динамически из значений объекта Request.

2.Запустим приложение, введем данные, и нажмем кнопку "Добавить". Результатом будет страница со всеми введенными ранее значениями:


Рис. 8.7.