Html.TextBox和Html.TextBoxFor之间的区别

gma*_*ser 12 asp.net-mvc-2

Html.TextBox和Html.TextBoxFor有什么区别?据我所知,他们产生相同的HTML输出.除非我在这里遗漏了什么.请帮我解决一下这个.

Dar*_*rov 21

Html.TextBox 不是强类型的,它不需要强类型视图,这意味着您可以硬编码您想要的任何名称作为第一个参数并为其提供值:

<%= Html.TextBox("foo", "some value") %>
Run Code Online (Sandbox Code Playgroud)

您可以ViewData在控制器操作内的字典中设置一些值,并且帮助器在渲染文本框(ViewData["foo"] = "bar")时将使用此值.

Html.TextBoxFor 需要强类型视图并使用视图模型:

<%= Html.TextBoxFor(x => x.Foo) %>
Run Code Online (Sandbox Code Playgroud)

帮助器将使用lambda表达式来推断传递给视图的视图模型的名称和值.

因为使用强类型视图和视图模型是一个好习惯,所以应该总是使用Html.TextBoxFor帮助器.