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