MVC2.0 用Area 擴充項目的目錄結構

來源:互聯網
上載者:User
Area是MVC2.0裡新特性,但是感覺在項目中應用的不是很多,也許是項目比較小吧,沒有在意目錄結構的整理,舉個例子來說吧,比如我們在管理自己項目的後台時候需要建立一個Admin目錄,總感覺Admin建在View目錄下不是很好,而且對URL顯示也不是很完美..比如/Admin/index.aspx… 如果能有一個目錄來單獨管理Admin 是很完美滴…

  在 MVC1.0時沒辦法實現這個功能,MVC2.0 提供了Area 特性,用來管理越來越龐大的項目目錄結構..

  在VS2010裡面項目上右鍵.添加…

  輸入名稱之後..目錄結構會變成:

  其中Admin 就是我輸入的地區名稱了.

  大家會發現產生的目錄結構和外層View目錄結構一樣的.(Home目錄是我後來改的為了後面的測試.)

  並且增加了AdminAreaRegistration.cs檔案,.

  代碼如下:

namespace MvcApplication1.Areas.Admin 
{ 
  public class AdminAreaRegistration : AreaRegistration 
  { 
    public override string AreaName 
    { 
      get 
      { 
        return "Admin"; 
      } 
    } 
 
    public override void RegisterArea(AreaRegistrationContext context) 
    { 
      context.MapRoute( 
        "Admin_default", 
        "Admin/{controller}/{action}/{id}", 
        new { action = "Index", id = UrlParameter.Optional } 
      ); 
    } 
  } 
} 

  可以看到這個檔案配置了Area的路由訪問規則. 在瀏覽器輸入/Admin/Home

  查看原圖(大圖)

  因為 HomeController跟 View裡面的HomeControllerc 同名.所以他無法識別是調用哪個Controller 會報錯.

  所以我們在Area裡面建立 Controller的時候需要注意不要和View裡面的Controller重名..

  在http://www.cnblogs.com/tthxnz/archive/2009/11/12/1602097.html這篇博文裡面介紹的Area Controller和View完全同名之後不會報錯,只是調用的Controller一樣而已..

  沒有做深入研究,猜測應該是版本原因,.他是mvc2 pr2版本..

  修正之後訪問:

  用了這個特性之後,我們在管理自己的項目結構更得心應手了,就比如我上文介紹的建立自己的後台管理目錄..

  對於這個特性相信應該不知這一點用途,希望有知道其他用途的園友分享下…



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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