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.Результатом работы кода, при нажатии на кнопку "Добавить" с не заполненными полями:
Восстановление значений формы после 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.Запустим приложение, введем данные, и нажмем кнопку "Добавить". Результатом будет страница со всеми введенными ранее значениями: