Каким способом вы предпочитаете создавать свои формы в MVC?
-
09-06-2019 - |
Вопрос
Каким способом вы предпочитаете создавать свои формы в MVC?
<% Html.Form() { %>
<% } %>
Или
<form action="<%= Url.Action("ManageImage", "UserAccount") %>" method="post">
</form>
Я понимаю, что Html.Form() начиная с PR5, теперь просто использует URL, предоставленный запросом.Однако что-то в этом мне не нравится, тем более что я получу весь багаж любых включенных строк запросов.
Каково ваше мнение?
Решение
Второй способ, определенно.Первый способ ориентирован на программиста, а это не то, о чем идет речь в V части MVC.Второй способ более ориентирован на дизайнера, привязываясь к модели только там, где это необходимо, оставляя HTML максимально естественным.
Другие советы
В целом, я думаю, что я немного придерживаюсь старой школы, поскольку предпочитаю создавать свои собственные HTML-элементы.
Я также предпочитаю движок просмотра, подобный подобному НГамл, что упрощает написание HTML почти на порядок.
Я должен согласиться с вами обоими, мне не очень нравится этот упрощенный стиль WebForms, который, кажется, интегрируется в MVC.Кажется, что это должна быть сторонняя библиотека или, по крайней мере, библиотека расширений, которую можно включить при необходимости.
Я полностью придерживаюсь мнения о старой школе HTML, это то, что используют дизайнеры.По этой причине мне не нравится включать слишком много синтаксиса, ориентированного на код.Я отношусь к движку просмотра веб-форм как к сторонней библиотеке, потому что я заменил его другим движком просмотра.Если вам не нравится, как работает модель представления веб-форм или в каком направлении она развивается, вы всегда можете идите другим путем.Это одна из главных причин, по которой я люблю ASP.NET MVC.
Я согласен с Эндрю Питерсом, ДРАЙ.Следует также отметить, что вы можете указать свой контроллер, действие и параметры помощнику .Form(), и если они соответствуют вашим правилам маршрутизации, то параметры строки запроса использоваться не будут.
Я также понимаю, что Уилл говорил о V в MVC.На мой взгляд, я не думаю, что это проблема - поместить код в представление до тех пор, пока это делается для вида..Действительно легко пересечь грань между контроллером и представлением, если вы не будете осторожны.Лично я терпеть не могу использовать C # в качестве шаблонизатора без того, чтобы у меня не кровоточили глаза и не возникало желания кого-нибудь убить.Это помогает мне разделить мою логику, логику контроллера на C #, логику просмотра на brail.
Причина использования помощников заключается в том, что они позволяют вам инкапсулировать общие шаблоны последовательным и сухим способом.Думайте о них как о способе рефакторинга представлений для устранения дублирования точно так же, как вы бы делали с обычным кодом.
Например, я в блоге о некоторых помощниках RESTful NHaml, которые могут создавать URL-адреса на основе модели.