Больше всего меня бесят различные теги или операторы в языках программирования и фреймворках, которые автоматически генерируют HTML для форм и их параметров. Я пытался использовать подобные вещи в Microsoft MVC, но не понял выводы.
Какой преимущество у Html.BeginForm по сравнению с простым классическим тегом <form>. У второго точно одно преимущество есть - нужно меньше нажатий клавиш, чтобы напечатать тэг.
Я слышал разные попытки объяснить чем генераторы лучше, но если честно, так и не увидел ничего, чтобы я сказал: "Да, это круть, это стоит гемора с необходимостью печатать больше символов".
Помимо меньшего нажатия клавиш, у простых тегов есть еще одно важное преимущество - переносимость. Просто берете этот HTML и переносите в любой другой язык программирования или может даже используете где-то для рендеринга и не нужно ничего преобразовывать, потому что HTML сейчас поддерживается практически везде. И я не понимаю попыток заменить общепринятый стандарт на что-то еще.
Мне проще и удобнее писать классический HTML. А ты используешь вкусняшки фреймворков, чтобы абстрагироваться от HTML? Какое преимущество, выбранного тобой подхода, стало для тебя решающим в твоем выборе?
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Михаил, я не понял, речь идет о генерации такого рода:
Response.Write(\"<form ....>.... </form>\");
но ведь это же буээээ!!!
Я тоже против хэлперов.
Да и верстальщику это ад, разбирать.
В MVC чаще всего пользуюсь хелперами только для генерации контролов html. Это, наверное, уже просто привычка да и наглядно хорошо видно, где какие данные.
Думаю с приходом MVC 6 в этом плане всем будет счастье. Все же там используются TagHelpers которые ничем особо не отличаются от html.
Михаил как насчет такого довода:
При использовании Raw html пишут uri к экшену который должен обработать запрос:
<form action="/comments/add-coment">
...
</form>
при использовании хелперов пишут имя контроллера и экшна
Html.BeginForm("AddComment","CommentsController" )
{
...
}
так вот если есть необходимость переименовать контроллер или экшн или переместить экшн в другой контоллер в случае использования хелперов Visual Studio позаботится о том чтобы переименовать имя контроллера или экшена во всех референсах, а в случае использования Raw html вам придется менять руками все.
Даже если у тебя будет шанс что Url изменятся в будущем, то лучше использовать Helper только для Url, а не для создания всей формы. Но мне не приходилось работать над сайтами, где Url, могут измениться, SEO никто еще не отменял
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.