UR.ANUS
Asp.net mvc framework
вернуться

Магдануров Гайдар Ильдарович

Шрифт:

new { action = "hello", id = 1 });

В результате будет создана следующая ссылка, при условии, что маршрут SomeRoute определен как mycontroller/{action}/sometext/{id}.

<a href="#">Сcылка</a>

Элементы управления HTML-страницы

Большая часть вспомогательных методов, приведенных в табл. 5.1, связаны с созданием HTML-разметки для элементов ввода данных 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&answer=42" method="get">

</form>

Текстовые поля, скрытые поля и кнопки

Вспомогательные методы для генерации текстовых полей, скрытых полей и кнопок работают по общему принципу — первым параметром передается идентификатор, который будет использован для создаваемого HTML-элемента и на основании которого сопоставляется значение элемента управления и создается пара ключ-значение при отправке данных формы на сервер.

<%= Html.TextArea("myText", "Hello world!") %>

В отличие от метода Html.BeginForm, выводящего строковые значения непосредственно в выходной буфер ответа пользователю, вспомогательные методы элементов управления возвращают строку, поэтому для них нужно использовать синтаксис <%= %>. Тогда в разметку страницы будет выведена соответствующая строка.

<textarea cols="20" id="myText" name="myText" rows="2">

la-la-la-la-la-la-la</textarea>

Для создания дополнительных атрибутов вспомогательным методам необходимо передать анонимный объект.

<%= Html.TextBox("myTextBox", "", new { style="color: yellow;",

@class="helloWorld" })%>

Поскольку в качестве имени свойства анонимного объекта нельзя использовать зарезервированные ключевые слова языка C#, то перед такими именами свойств нужно добавить символ @. В результирующий вывод свойство @class войдет как class, без символа @.

<input class="helloWorld" id="myTextBox"

name="myTextBox" style="color: yellow;" type="text" value="" />

Особым случаем является вспомогательный метод Html.CheckBox, поскольку он создает два HTML-элемента управления. Непосредственно элемент "флажок" и "скрытое поле".

<%= Html.CheckBox("myCheckBox", true) %>

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

  • Читать дальше
  • 1
  • ...
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • ...

UR.ANUS - русскоязычная библиотека для чтения онлайн. Здесь удобно открывать книги с телефона и ПК, возвращаться к сохраненной странице и держать любимые произведения под рукой. Материалы добавляются пользователями; если считаете, что ваши права нарушены, воспользуйтесь формой обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • support@anus.bid