Автоматические генераторы форм


6 0

Больше всего меня бесят различные теги или операторы в языках программирования и фреймворках, которые автоматически генерируют HTML для форм и их параметров. Я пытался использовать подобные вещи в Microsoft MVC, но не понял выводы. 

Какой преимущество у Html.BeginForm по сравнению с простым классическим тегом <form>. У второго точно одно преимущество есть - нужно меньше нажатий клавиш, чтобы напечатать тэг. 

Я слышал разные попытки объяснить чем генераторы лучше, но если честно, так и не увидел ничего, чтобы я сказал: "Да, это круть, это стоит гемора с необходимостью печатать больше символов". 

Помимо меньшего нажатия клавиш, у простых тегов есть еще одно важное преимущество - переносимость. Просто берете этот HTML и переносите в любой другой язык программирования или может даже используете где-то для рендеринга и не нужно ничего преобразовывать, потому что HTML сейчас поддерживается практически везде. И я не понимаю попыток заменить общепринятый стандарт на что-то еще. 

Мне проще и удобнее писать классический HTML. А ты используешь вкусняшки фреймворков, чтобы абстрагироваться от HTML? Какое преимущество, выбранного тобой подхода, стало для тебя решающим в твоем выборе? 


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Эдвард С.

04 Сентября 2015

Михаил, я не понял, речь идет о генерации такого рода:

Response.Write(\&quot;&lt;form ....&gt;.... &lt;/form&gt;\&quot;);

но ведь это же буээээ!!!


Overdrive

04 Сентября 2015

Я тоже против хэлперов.
Да и верстальщику это ад, разбирать.


Михаил Фленов

04 Сентября 2015

Михаил, я не понял, речь идет о генерации такого рода:


Нет, вместо
&lt;form&gt;
&lt;/form&gt;

В MVC пишется:

@using (Html.BeginForm()) {
}

А razor уже парсит это и заменяет на тэги HTML


MasDen

05 Сентября 2015

В MVC чаще всего пользуюсь хелперами только для генерации контролов html. Это, наверное, уже просто привычка да и наглядно хорошо видно, где какие данные.
Думаю с приходом MVC 6 в этом плане всем будет счастье. Все же там используются TagHelpers которые ничем особо не отличаются от html.


urumchic

07 Сентября 2015

Михаил как насчет такого довода:
При использовании Raw html пишут uri к экшену который должен обработать запрос:
&lt;form action=&quot;/comments/add-coment&quot;&gt;
...
&lt;/form&gt;

при использовании хелперов пишут имя контроллера и экшна
Html.BeginForm(&quot;AddComment&quot;,&quot;CommentsController&quot; )
{
...
}

так вот если есть необходимость переименовать контроллер или экшн или переместить экшн в другой контоллер в случае использования хелперов Visual Studio позаботится о том чтобы переименовать имя контроллера или экшена во всех референсах, а в случае использования Raw html вам придется менять руками все.


Михаил Фленов

07 Сентября 2015

Даже если у тебя будет шанс что Url изменятся в будущем, то лучше использовать Helper только для Url, а не для создания всей формы. Но мне не приходилось работать над сайтами, где Url, могут измениться, SEO никто еще не отменял


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

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

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне