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