В чем разница между Html.TextBox и Html.TextBoxFor? Насколько я знаю, они производят одинаковый вывод html. Если я не пропущу что-то здесь. Пожалуйста, помогите мне с этим.
Разница между Html.TextBox и Html.TextBoxFor
Ответ 1
Html.TextBox
не строго типизирован и не требует строго типизированного представления, означающего, что вы можете жестко указать любое имя, которое хотите в качестве первого аргумента, и предоставить ему значение:
<%= Html.TextBox("foo", "some value") %>
Вы можете установить некоторое значение в словаре ViewData
внутри действия контроллера, и помощник будет использовать это значение при рендеринге текстового поля (ViewData["foo"] = "bar"
).
Html.TextBoxFor
требуется строго типизированное представление и использует модель представления:
<%= Html.TextBoxFor(x => x.Foo) %>
Помощник будет использовать выражение лямбда для вывода имени и значения модели представления, переданной в представление.
И поскольку хорошо использовать сильно типизированные представления и просматривать модели, вы всегда должны использовать помощник Html.TextBoxFor
.
Ответ 2
Сильно типизированные расширения - это показывать любые ошибки или предупреждения во время компиляции, а не время выполнения. Посмотрите эту страницу, это разъяснит все ваши сомнения.