2011-02-04 144 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

相關問題