difference between Html.TextBox and Html.TextBoxFor
What is the difference between Html.TextBox and Html.TextBoxFor? As far as I know they produce same html output. Unless I开发者_如何学Go'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.
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
精彩评论