2013-07-17 35 views
2

什麼情況下何時明確使用HtmlHelper?MVC4:HtmlHelper - pro&con

我建立一個小的MVC網站,看電視,每個通道都顯示爲某種增強型100像素* 100像素瓷磚:

鼠標懸停,例如,

  • 顯示一個星號,點擊這個明星會使該頻道成爲最喜歡的頻道並更改圖標。
  • 一個「管理員工具欄」,從圖標的底部向上滑動,從而允許進行編輯,刪除,或認爲信道
    • 的細節,如果所述信道是一個記錄信道然後一個附加圖標被示出

最初,我只在視圖中定義了標記。現在我創建了一個htmlhelper方法,該方法一次傳遞一個「Channel」 - 項目,並返回幾乎相同的標記。

我不確定是否有任何客觀的親和騙局?我讀過htmlhelpers只能用於小型操作。我想這仍然是一個小操作。

我認爲唯一的職業是我可能需要使用另一個視圖以及與htmlhelper通道瓷磚,我不會有(多)多餘的代碼。

+0

我知道這可能是一個愚蠢的問題,但在我看來,如果有人決定投下一個問題,那麼他/她也應該評論爲什麼.. – peter

回答

2

看看顯示/編輯器模板(例如hereherehere)。它們是插入@Html.DisplayFor@Html.EditorFor的部分視圖。

我認爲:

  • HTML輔助是好的,如果所生成的HTML是相當簡單,並且有許多涉及服務器端的邏輯(例如驗證基於服務器端模型)。
  • 如果您想在另一個頁面中使用一頁的一部分,則部分視圖非常適合。但是如果你想在很多地方重複使用它們,它們有點笨重。
  • 這是顯示和編輯模板最適合的地方。

還有一個備註:顯示和編輯模板基於模型類型:您可以定義爲某種類型的自定義編輯器和/或顯示。如果你想再次使用相同的HTML模式,那麼這可能不是一個完美的選擇。在這種情況下,您可能想要繼續使用Html Helpers - 它們允許輕鬆傳遞參數。部分視圖不需要參數。您必須將它們作爲模型或在ViewBag中交給他們。

+0

感謝您的信息鏈接! – peter

0

你是對的HtmlHelpers用於需要輸出相對較少量的html時。其原因是html是通過在c#代碼中構建字符串而產生的,這可能是一個問題,因爲邏輯的數量在幫助程序中增長。 我會建議使用部分視圖爲您的情況生成html,因爲它可以重用(使用Html.RenderPartial),並且它很容易修改,因爲它與html intellisense的剃刀視圖