更接近HTML ...然后为什么HtmlHelper?

时间:2011-02-04 02:23:40

标签: asp.net-mvc

我经常看到,被吹捧为ASP.NET MVC的一大好处,它使您更接近实际的页面标记,而不是WebForms的伪标记。

如果是这样,那为什么HtmlHelper存在?似乎所有这些LabelForTextBoxFor内容与<asp:Label><asp:TextBox>一样多的伪标记都在WebForms中。

我错过了什么?为什么有HtmlHelper类?人们在现实生活中使用它吗?

4 个答案:

答案 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