Asp.net mvc3的分部視圖優點和缺點

來源:互聯網
上載者:User

提到分部視圖,我相信大家會想到和web form時代的對應物ascx分部控制項,我們在Mvc時代可以更加輕鬆的控制分部視圖。

要說明分部視圖,我們先來討論一下分部視圖可以帶給我們的優點:

  1. 分部視圖可以使系統外掛程式化 。我現在非常推崇一個原則,就是可以分離的東西絕對不要讓他們在一起,因為只有每個功能模組都是單獨的,我們才可以在其他位置重用它。
  2. 分部視圖還可以帶來一個優點,就是分工合作。 現在是一個合作的時代,沒有任何一個人可以單獨完成規定的任務而不與別人合作,除非是牛人例外。分部視圖可以帶給我們開發不同模組中的分工合作。
  3. 分部視圖還有一個在Mvc時代的優點,就是實現簡單。我自從學習使用Mvc以後,我基本上就很少寫web form的代碼了,因為我感覺沒有Mvc書寫的那麼流暢。html.partial(partialName)就可以顯示一個分部視圖的頁面。


簡單的敘述了一下優點,既然我們能發現優點存在,那麼我們就想在實際項目中更好的使用它,畢竟程式員都追求懶,一段代碼,三句可以搞定,絕對不會寫三句半,當然最小化原則也是我們代碼最佳化的最終目的。

那麼究竟在Mvc中有哪些可以實現分部視圖的功能呢?以及我們要注意點什麼呢?

  • Html.Partial(partialName)和html.RenderPartial(partialName) 就是首選。 其實這兩個方法我們可以指定任何的.cshtml檔案,不一定只是分

    部視圖。大家來回憶一下分部視圖和視圖的區別在哪裡?就是視圖有head、body標籤,可以定義js,可以指定母板頁,但是在我們用Vs右鍵添加

    分部視圖的時候,我們會看到只是一些基本的html標籤,沒有任何的head、body,但是這不等於我們不可以添加,所以說partialName可以是任

    何的視圖檔案。但是我們最好是建立分部視圖,因為我們最終是要把這些分部視圖合并成為一個頁面,如果只是分部視圖的html標籤,那麼在整

    體頁面中html標籤就會顯得很乾淨。

    另外,我們不要在分部視圖中定義或者引用css以及js。如果需要我們在整體頁面中定義或引用。原因有2:1是我們的分部視圖檔案和整體頁面的

    路徑可能不在同一個目錄下,那麼會造成找不到css或js檔案的情況。2就是對整體頁面的html代碼是一種傷害。

  • html.Action和html.RenderAction()方法也可以用來作為分部視圖使用

具體使用方式我想就不需要細說了,大家對htmlHelper都會非常熟悉,因為常用嘛。

這段時間我在做項目,就大量的使用到了分部視圖,現在來總結一下,讓後來的學習者少走一點彎路。

  1. 如果可以,盡量使用母板頁,這樣可以很好的控制網站的樣式。
  2. 採用單獨的css檔案,單獨的js檔案,盡量不要在分部視圖中定義樣式,而是在整體頁面中。
  3. 分部視圖的html標籤應該儘可能的少,除了要顯示的內容之外,不要有任何雜質存在。樣式css、js等在整體頁面添加。
  4. 如果可以,盡量採用html.partial(partialName)或html.RenderPartial(partialName)的方式,而不要用html.Action來作為分部視圖的方式,因為這種方法會和控制器互動。
  5. 對分部視圖的傳值盡量採用Model的方式進行,如果一個分部視圖需要傳遞兩個參數,那麼我建議你分成兩個分部視圖。
  6. 採用分部視圖會對整體頁面的樣式調整帶來困難,所以我建議先整體做出頁面,然後再分成不同的分部視圖。
  7. 過多的分部視圖會增加伺服器的延遲,所以分部視圖的控制要得當,我建議控制在10個以內吧,如果伺服器允許,更多也是可以的。
  8. 要注意分部視圖的標籤id的命名,最好採用固定的要規則的命名方式,盡量減少衝突的發生,畢竟同名的標籤存在會對程式造成隱患。

我相信,每天進步的您,最後一定有一個好的未來。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.