What is the difference between Html.TextBox and Html.TextBoxFor? As far as I know they produce same html output. Unless I'm missing something here. Please help me with this.
Html.TextBox
is not strongly typed and it doesn't require a strongly typed view meaning that you can hardcode whatever name you want as first argument and provide it a value:
<%= Html.TextBox("foo", "some value") %>
You can set some value in the ViewData
dictionary inside the controller action and the helper will use this value when rendering the textbox (ViewData["foo"] = "bar"
).
Html.TextBoxFor
is requires a strongly typed view and uses the view model:
<%= Html.TextBoxFor(x => x.Foo) %>
The helper will use the lambda expression to infer the name and the value of the view model passed to the view.
And because it is a good practice to use strongly typed views and view models you should always use the Html.TextBoxFor
helper.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With