12

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.

1

2 Answers 2

21

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.

Sign up to request clarification or add additional context in comments.

2 Comments

So, I assume the end result is same. Pl correct me if I'm wrong.
@gmail user, yes the end result is the same. They both emit the same html.
0

Strongly typed extensions is to show any errors or warnings at compile time rather than run time. Please see this page, it will clarify all your doubts

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.