Книга: ASP.NET MVC Framework

HTML-форма

HTML-форма

Для того чтобы данные, введенные пользователем в элементы управления, были корректно отправлены на сервер и обработаны ожидающим этих данных действием контроллера, необходимо создать тег <form>, для этого существует вспомогательный метод Html.BeginForm(действие контроллера, имя контроллера). Если при вызове метода не указаны параметры, атрибут action тега <form> будет заполнен текущим URL.

<% using(Html.BeginForm("About", "Home")){ %>
<% } %>

В примере используется синтаксис using(){}. Дело в том, что метод Html.BeginForm() возвращает объект, реализующий интерфейс IDisposable. Метод Dispose() этого объекта определен таким образом, чтобы выводить закрывающий тег формы </form>. Вместо синтаксиса using(){} можно воспользоваться вспомогательным методом Html. EndForm().

<% Html.BeginForm("About", "Home"); %>
<% Html.EndForm (); %>

Синтаксис using(){} удобнее при наличии нескольких независимых форм на странице — в этом случае формы будут выглядеть визуально обособленно.

При отображении представления будет создана соответствующая разметка для тега <form>.

<form action="/Home/About" method="post">
</form>

В случае необходимости задать дополнительные параметры URL, по которому будут отправлены данные формы, необходимо передать анонимный объект, свойства которого будут преобразованы в пары ключ-значение. Для определения метода отправки формы, в качестве параметра нужно передать значение перечислимого FormMethod.

<% using (Html.BeginForm("About", "Home",
   new { hello = "world", answer = 42 }, FormMethod.Get )) { %>
<% } %>

Эти параметры будут использованы при генерации тега <form>.

<form action="/Home/About?hello=world&amp;answer=42" method="get">
</form>

Оглавление книги


Генерация: 4.256. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз