Html.Textbox VS Html.TextboxFor - PullRequest
       15

Html.Textbox VS Html.TextboxFor

90 голосов
/ 06 мая 2011

В чем разница между Html.Textbox и Html.TextboxFor?

Ответы [ 4 ]

112 голосов
/ 06 мая 2011

В конечном итоге они оба выдают один и тот же HTML, но Html.TextBoxFor () строго типизирован, где Html.TextBox не.

1:  @Html.TextBox("Name")
2:  Html.TextBoxFor(m => m.Name)

будетоба производят

<input id="Name" name="Name" type="text" />

Так что это означает с точки зрения использования?

Обычно две вещи:

  1. Введенный TextBoxFor сгенерирует ваши входные именадля тебя.Обычно это просто имя свойства, но для свойств сложных типов можно добавить символ подчеркивания, такой как 'customer_name'
  2. . Использование напечатанной TextBoxFor версии позволит вам использовать проверку времени компиляции.Поэтому, если вы измените свою модель, то сможете проверить, есть ли какие-либо ошибки в ваших представлениях.

Как правило, рекомендуется использовать строго типизированные версии HtmlHelpers, которые были добавлены в MVC2 .

15 голосов
/ 06 мая 2011

TextBoxFor - это более новое расширение ввода MVC, введенное в MVC2.

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

См. Эту страницу.

http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx

6 голосов
/ 06 мая 2011

IMO главное отличие в том, что Textbox не сильно напечатан. TextboxFor принимает лямбду в качестве параметра, который сообщает помощнику элемент with модели для использования в типизированном представлении.

Вы можете сделать то же самое с обоими, но вы должны использовать типизированные представления и TextboxFor, когда это возможно.

3 голосов
/ 16 апреля 2015

Html.TextBox amd Html.DropDownList не являются строго типизированными и, следовательно, они не требуют строго типизированного представления. Это означает, что мы можем жестко закодировать любое имя, какое захотим. С другой стороны, Html.TextBoxFor и Html.DropDownListFor строго типизированы и требуют строго типизированного представления, а имя выводится из лямбда-выражения.

Строго типизированные HTML-помощники также обеспечивают проверку времени компиляции.

Поскольку в режиме реального времени мы в основном используем строго типизированные представления, предпочитаем использовать Html.TextBoxFor и Html.DropDownListFor по сравнению с их аналогами.

Используем ли мы Html.TextBox & Html.DropDownList ИЛИ Html.TextBoxFor & Html.DropDownListFor, конечный результат один и тот же, то есть они генерируют один и тот же HTML.

В MVC2 добавлены строго типизированные HTML-помощники.

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