Есть ли польза от использования HtmlHelper в MVC? - PullRequest
11 голосов
/ 08 ноября 2008

Есть ли конкретная причина, по которой я должен использовать методы Html.CheckBox, Html.TextBox и т. Д. Вместо простого написания HTML-кода вручную?

<%= Html.TextBox("uri") %>

отображает следующий HTML

<input type="text" value="" name="uri" id="uri"/>

Наверное, это спасет вас от нескольких нажатий клавиш, но кроме этого. Есть ли конкретная причина, по которой я должен стараться изо всех сил использовать HtmlHelpers, когда это возможно, или это просто предпочтение?

Ответы [ 6 ]

7 голосов
/ 08 ноября 2008

Другое преимущество состоит в том, что если ваши ViewData содержат значение, соответствующее имени поля, оно будет заполнено.

, например

ViewData["FirstName"] = "Joe Bloggs"; 

<%=Html.TextBox("FirstName") %>

будет отображать

<input type="text" value="Joe Bloggs" id="FirstName" />
5 голосов
/ 08 ноября 2008

Есть огромные преимущества:

В нем перегружены методы для предварительного заполнения значений (отформатированных и безопасных для HTML), как в ViewState.

Это позволяет встроенную поддержку для функций проверки MVC.

Это позволяет вам переопределить рендеринг, предоставляя свою собственную DLL для изменения рендеринга (своего рода методология типа «Адаптер контроллера»).

Это приводит к идее создания собственных «контролей»: http://www.singingeels.com/Articles/Building_Custom_ASPNET_MVC_Controls.aspx

2 голосов
/ 08 ноября 2008

На самом деле он автоматически заполняет текстовое поле, основываясь сначала на вашем ViewData.Model.uri, а затем на ViewData ["uri"]. Делая это вручную, вам нужно будет сделать <input value="<%Html.Encode(ViewData.Model.Uri"%>" />

2 голосов
/ 08 ноября 2008

Преимуществом использования уровня абстракции является возможность проверки вашего кода подключаемым способом в будущем. Может быть, сегодня вы создаете страницы HTML 4, но завтра вы хотите создать страницы XHTML, XAML или XUL. Это много изменений, если вы просто жестко кодируете теги везде, особенно если у вас есть сотни страниц. Если все вызывает эту библиотеку, то все, что вам нужно сделать, это переписать библиотеку. Недостатком является то, что люди обычно считают его менее читаемым. Таким образом, это, скорее всего, увеличивает познавательную потребность ваших программистов обслуживания. Эти преимущества и недостатки действительно не имеют ничего общего с MVC.

2 голосов
/ 08 ноября 2008

Одна вещь для последовательности ... Я, например, всегда забываю атрибут имени. Кроме того, вы можете расширить функции для своих собственных проектов. Их не называют помощниками даром!

1 голос
/ 08 ноября 2008

Я не слишком долго делал MVC, но я уже написал несколько методов расширения для генерации вкладок меню на основе Html.ActionLink. Это позволяет мне быть согласованным с моим использованием, и, если я решу изменить работу моих CSS-меню, измените только один метод для вывода нового формата вкладок.

Другое использование, которое я использовал для них, - это условный вывод с использованием ViewData для предоставления значений элементам управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...