Каким способом вы предпочитаете создавать свои формы в MVC?

StackOverflow https://stackoverflow.com/questions/42282

Вопрос

Каким способом вы предпочитаете создавать свои формы в 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-адреса на основе модели.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top