我經常看到,被譽爲ASP.NET MVC的一大優點,它讓你更接近實際的頁面標記,而不是WebForms的僞標記。更接近HTML ...那麼爲什麼HtmlHelper?
如果是這樣的話,爲什麼HtmlHelper存在?這似乎是所有這LabelFor
,TextBoxFor
東西是一樣多的僞標記<asp:Label>
和<asp:TextBox>
在WebForms中。
我錯過了什麼?爲什麼有一個HtmlHelper類?人們在現實生活中使用它嗎?
我經常看到,被譽爲ASP.NET MVC的一大優點,它讓你更接近實際的頁面標記,而不是WebForms的僞標記。更接近HTML ...那麼爲什麼HtmlHelper?
如果是這樣的話,爲什麼HtmlHelper存在?這似乎是所有這LabelFor
,TextBoxFor
東西是一樣多的僞標記<asp:Label>
和<asp:TextBox>
在WebForms中。
我錯過了什麼?爲什麼有一個HtmlHelper類?人們在現實生活中使用它嗎?
雖然你說得對,HtmlHelper函數會抽象出所呈現的確切標記,但其最大的好處是視圖更多DRY,並且您可以將必要參數傳遞給函數以便自定義生成的HTML。
而不是必須手動輸出完整的<input />
標記,完成value=<%= Model.Property %>
,Html.TextBoxFor
是輸出相同的東西更簡潔的方式。和所有DRY方法一樣,如果您需要更改應用程序中所有文本框的HTML(例如輸出新屬性),則只需更改HtmlHelper方法即可。
他們在我看來有點像簡單,輕量級的局部視圖,只是設計用於輸出一些一致的HTML給予一些輸入。
HTML助手的目的是消除繁瑣且重複的<input>
標籤。
與服務器端控件不同,HTML助手會發出原始的(相當可預測的)HTML。
它簡化了這些的創建並允許它們被強烈命名。當然人們用這個!
我不完全同意答案,我總覺得和你一致。
您可以將幫助器視爲預構建的自定義控件,如果您希望生成一些代碼,則可以使用幫助器,如果您想要一個乾淨的方法並靠近html,則不要。
這裏重要的一點是,MVC允許你接近html,但並不僅限於此。
您可以創建自己的助手來創建所需的標記,然後使用它。
在這一天結束時,它歸結爲自己的喜好,你可以選擇或不選擇更接近HTML
這是現實生活? – jfar 2011-02-04 04:33:56