我经常看到,被吹捧为ASP.NET MVC的一大好处,它使您更接近实际的页面标记,而不是WebForms的伪标记。
如果是这样,那为什么HtmlHelper存在?似乎所有这些LabelFor
,TextBoxFor
内容与<asp:Label>
和<asp:TextBox>
一样多的伪标记都在WebForms中。
我错过了什么?为什么有HtmlHelper类?人们在现实生活中使用它吗?
答案 0 :(得分:3)
虽然你说HtmlHelper函数确实抽象出渲染的确切标记是正确的,但这样做的最大好处是视图更加DRY并且你能够将必要的参数传递给函数为了自定义生成的HTML。
不必手动输入完整的<input />
标记,与value=<%= Model.Property %>
完整,Html.TextBoxFor
是输出相同内容的更简洁方式。和所有DRY方法一样,如果您需要更改应用程序中所有文本框的HTML(例如输出新属性),您只需更改HtmlHelper方法即可。
在我看来,它们有点像简单,轻量级的局部视图,只是为了在输入时输出一些一致的HTML。
答案 1 :(得分:2)
HTML助手的目的是消除繁琐且重复的<input>
标签。
与服务器端控件不同,HTML帮助程序会发出原始的,(相当)可预测的HTML。
答案 2 :(得分:1)
它简化了这些的创建,并允许它们被强烈命名。当然人们会用它!
答案 3 :(得分:1)
我不太同意这些答案,我不知何故同意你的意见。
您可以将帮助程序视为预构建的自定义控件,如果您希望生成一些代码,您可以使用帮助程序,如果您想要一个干净的方法并接近html,那么就不要。 / p>
这里重要的一点是,MVC允许你接近html,但并不仅限于此。
您可以创建自己的帮助程序来创建所需的标记,然后使用它。
在一天结束时,它归结为您自己的偏好,您可以选择或选择不接近html