MVC 5, Створення HTML-елементів
Отже, у попередній статті ми розглянули створення та налаштування HTML-дескрипторів веб-форм. HTML-форма не має особливого сенсу доти, доки не будуть створені деякі елементи управління введенням (наприклад, ). У таблиці нижче описані базові допоміжні методи, які доступні для створення елементів і наведені приклади генерованої ними HTML-розмітки. У всіх цих допоміжних методах перший аргумент використовується для встановлення значень атрибутів id і name елемента, а другий аргумент служить для встановлення значення атрибута value.
Кожен із перерахованих допоміжних методів має перевантажену версію. У цій таблиці показані найпростіші версії, але можна також надати додатковий аргумент об'єкта для вказівки HTML-атрибутів, як це робилося з елементом .
Генерація елемента керування введенням із властивості моделі
Допоміжні методи, які використовуються в попередньому розділі, працюють добре, але нам, як і раніше, необхідно гарантувати, що значення, що передається в першому аргументі, відповідає значенню моделі, яке передається в другому аргументі. Якщо ці значення не узгоджені, інфраструктура ASP.NET MVC Framework не зможе відтворити об'єкт моделі даних форми, оскільки атрибути name і значення елементів форми не відповідають один одному.
Для кожного методу, перерахованого в таблиці вище, є перевантажена версія, яка приймає єдиний аргумент типу string:
Аргумент string застосовується для пошуку даних уявлення, в об'єкті ViewBag і в моделі представлення відповідного елемента даних, який може використовуватися як основа для елемента input. Таким чином, наприклад, якщо викликати @Html.TextBox("DataValue"), то інфраструктура ASP.NET MVCFramework спробує знайти елемент даних, який відповідає ключу DataValue. Перевірятимуться такі розташування:
Перше знайдене значення використовується для встановлення атрибуту value генерованої HTML-розмітки. (Остання перевірка, @Model.DataValue, робиться тільки якщо модель представлення містить властивість або поле на ім'я DataValue.)
Якщо вказати рядок типу DataValue.First.Name, пошук стає більш складним. Інфраструктура ASP.NET MVC Framework випробуває різні комбінації елементів, що розділяються точками, такі як:
Перевіряються багато перестановок. І знову використовуватиметься перше знайдене значення, завершуючи пошук. З цим прийомом пов'язана очевидна проблема продуктивності, проте пам'ятайте, що всередині об'єкта ViewBag зазвичай міститься зовсім небагато елементів, тому пошук серед них не повинен забирати значний час.
Використання строго типізованих допоміжних методів для створення елементів керування введенням
Кожному базовому допоміжному методу створення елементів управління введенням, описаному в таблиці вище, відповідає строго типізований допоміжний метод. Ці допоміжні методи наведені в таблиці нижче разом з прикладами HTML-розмітки, яку вони генерують. Такі допоміжні методи можуть застосовуватися лише із строго типізованими уявленнями. (Частина допоміжних методів генерують атрибути, які допомагають забезпечувати перевірку достовірності даних форм на стороні клієнта, але для стислості в таблиці вони не наведені.)