2013-04-02 22 views

回答

0

只要你按照他們應該使用的方式使用幫手,對於設計者來說,學習如何使用它應該是相當微不足道的。請記住,目標是保持簡單,如果它們最終使事情變得更加複雜,就意味着它們沒有被正確使用。

的性能差異可以忽略不計

+0

是的,我指的是@ Html.LabelFor(),@ Html.TextBoxFor()方法 – TiagoBrenck

+0

沒錯。這些助手爲編寫視圖提供了一種簡單的方法,避免編寫複雜且易於遺忘的HTML代碼。 – equisde

+2

是的。開發者循環的成本比CPU循環更多。 –

0

我沒有關於性能的答案,但我確實有一個答案,你的最後一個問題。

有沒有我應該避免使用HtmlHelpers的情況?

在我們的項目中,我們傾向於避免使用HtmlHelpers,因爲靜態方法(如Html助手擴展方法)很難以我們想要的方式進行單元測試。

我們沒有使用HTML Helpers(擴展方法),而是使用我們視圖的自定義基類。這個基類暴露了我們的幫助器服務(Uri,Html,DataEndpoint)並保持事物可測試性。

1

我更喜歡在構建表單時使用助手方法。我還喜歡而不是使用Html.TextboxFor(),99%的時間我使用Html.EditorFor()編輯器。

所以,我建一個形式是這樣的:

@Html.LabelFor(model=>model.SomeField) 
@Html.EditorFor(model=>model.SomeField) 
@Html.ValidationMessageFor(model=>model.SomeField) 

這給了我很多: 它可以確保我的所有領域有正確的姓名和身份證的,它允許使用客戶端驗證,無我不得不寫很多額外的標記。

使用Html.EditorFor() - 方法代替Html.TextboxFor(),使我有機會在正確的字段中使用正確的編輯器。 電子郵件字段應使用type =「email」,日期應使用type =「date」。不是類型=「文本」。通過EditorFor(),我可以創建模板,在那裏我將使用TextboxFor()或者純粹的標記。這樣,每個帶有電子郵件字段的模型都會得到相同的編輯器,並且每個日期都會得到相同的日期選擇器。

簡而言之: 如果您不使用EditorForModel(),請始終使用LabelFor(),EditorFor()和ValidationMessageFor()。如果您需要特殊標記,請使用模板。