2011-02-04 206 views
1

我经常看到,被誉为ASP.NET MVC的一大优点,它让你更接近实际的页面标记,而不是WebForms的伪标记。更接近HTML ...那么为什么HtmlHelper?

如果是这样的话,为什么HtmlHelper存在?这似乎是所有这LabelFor,TextBoxFor东西是一样多的伪标记<asp:Label><asp:TextBox>在WebForms中。

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

+0

这是现实生活? – jfar 2011-02-04 04:33:56

回答

3

虽然你说得对,HtmlHelper函数会抽象出所呈现的确切标记,但其最大的好处是视图更多DRY,并且您可以将必要参数传递给函数以便自定义生成的HTML。

而不是必须手动输出完整的<input />标记,完成value=<%= Model.Property %>,Html.TextBoxFor是输出相同的东西更简洁的方式。和所有DRY方法一样,如果您需要更改应用程序中所有文本框的HTML(例如输出新属性),则只需更改HtmlHelper方法即可。

他们在我看来有点像简单,轻量级的局部视图,只是设计用于输出一些一致的HTML给予一些输入。

2

HTML助手的目的是消除繁琐且重复的<input>标签。

与服务器端控件不同,HTML助手会发出原始的(相当可预测的)HTML。

1

它简化了这些的创建并允许它们被强烈命名。当然人们用这个!

1

我不完全同意答案,我总觉得和你一致。

您可以将帮助器视为预构建的自定义控件,如果您希望生成一些代码,则可以使用帮助器,如果您想要一个干净的方法并靠近html,则不要。

这里重要的一点是,MVC允许你接近html,但并不仅限于此。

您可以创建自己的助手来创建所需的标记,然后使用它。

在这一天结束时,它归结为自己的喜好,你可以选择或不选择更接近HTML

相关问题