Почему мы используем помощник HTML в ASP.NET MVC?

Есть ли что-то хорошее, передовой опыт или прибыль после использования помощника HTML в проекте ASP.NET MVC?

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

Другие [нетехнические] люди не могут понять, что я пишу с помощью Helper, если я хочу им показать или они хотят сделать что-то, на что им нужно потратить больше времени, даже если у них есть практические знания HTML.

Если я использую помощник HTML, я теряю скорость. Когда я использую HTML, я просто печатаю и, конечно, не осознаю этого. Но с помощью хелпера это сложно понять.

Что мы получаем, когда использую помощник HTML? Думаю, я ничего не получаю, потому что теряю скорость. Другие не могут понять, что я делаю с помощью помощника, и не могут настроить код, если захотят.

Почему мы используем помощники HTML?


person Community    schedule 13.01.2011    source источник


Ответы (2)


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

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

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

person Darin Dimitrov    schedule 13.01.2011
comment
У меня запоздалый вопрос ... какое возможное преимущество - HTML.TextBox / Hidden; Я, должно быть, потратил 8 часов на то, чтобы научиться использовать его так же гибко, как ‹input›, что, вероятно, изначально заняло 15 минут, чтобы выучить его. По сути, это заставляет меня делать простую объектно-ориентированную разметку без уменьшения количества псевдообъектов ‹input›, с которыми мы уже имеем дело. TextBox на самом деле создает больше дублирования, чем ввода, учитывая все новые теги типов {} и (object), которые вы должны разместить, чтобы вернуть полную функциональность ... кажется быстрым исправлением плохого языка дизайна. Но я согласен с заявленными преимуществами - person gunslingor; 08.01.2017
comment
Можете ли вы представить себе код спагетти, который вам пришлось бы писать в своих представлениях, если бы не было помощников HTML? Я не знаю об этом, не могли бы вы привести пример того, как данная разница будет выглядеть на практике? - person Barrosy; 18.07.2019

Самое большое преимущество, которое я нахожу, - это редактор и шаблоны отображения.

Если ваш редактор для поля представляет собой нечто большее, чем просто поле ввода, вы можете поместить его в шаблон и заменить несколько тегов вызовом

<%:Html.EditorFor(m=>m.Property)%>

Это означает, что вашу страницу намного проще редактировать, поскольку вам не нужно копаться в пустом HTML, чтобы найти то, что вам нужно.

person Chao    schedule 13.01.2011