Html.TextBox和Html.TextBoxFor有什么区别?据我所知,他们产生相同的HTML输出。除非我在这里遗漏了什么。请帮帮我。
答案 0 :(得分:21)
Html.TextBox
不是强类型的,它不需要强类型视图,这意味着您可以将您想要的任何名称硬编码为第一个参数并为其提供值:
<%= Html.TextBox("foo", "some value") %>
您可以在控制器操作中的ViewData
字典中设置一些值,并且在渲染文本框(ViewData["foo"] = "bar"
)时帮助程序将使用此值。
Html.TextBoxFor
需要强类型视图并使用视图模型:
<%= Html.TextBoxFor(x => x.Foo) %>
帮助器将使用lambda表达式推断传递给视图的视图模型的名称和值。
因为使用强类型视图和视图模型是一个好习惯,所以应该始终使用Html.TextBoxFor
帮助器。
答案 1 :(得分:0)
强类型扩展是在编译时而不是运行时显示任何错误或警告。请参阅this页面,它将澄清您的所有疑虑