2010-08-26 103 views
0

在ASP.NET MVC2,ASP.NET MVC2路由/文件夾結構

如何更改路由/文件夾結構,所以我可以有

  • 查看\文件夾\帳戶\ ChangePass.aspx

不是:

  • 查看\帳戶\ ChangePass.aspx

我實際上並不想爲帳戶做這件事,但我想構建這樣的事情,例如,

,所以我可以有這樣兩種不同的觀點:

  • 意見\類別\

  • 視圖\管理\類別\

這將完全不同的顯示。

我想要做的就是能夠創建自己的子文件夾來將視圖推入,而不是每個不同控制器的獨立文件夾.................. .............................................

+0

你想改變MVC如何查找包含您的視圖(一個視圖引擎功能),或用於訪問你的資源的URL的形狀aspx文件(一路由功能)? – marcind 2010-08-26 00:48:24

回答

2

Go與asp.net MVC公約查看位置;如果你想擁有不同的網址路徑,你需要考慮創建自己的路由,而不是給予你的默認單一路由。 (請參閱this primer。)

下面是您可能在Global.asax中添加的具有所需結果的路徑示例,但您必須將此路線映射到適當的控制器操作。真的,你需要決定的模式,以滿足您的應用程序的需要...

 routes.MapRoute(
      "FolderRoute",            
      "{controller}/{folder}/{action}/{id}",      
      new { controller = "Home", folder = "yourFolderDefault", action = "Index", id = "" } 
     ); 
3

聽起來好像是你需要考慮使用領域......看一看這篇文章的詳細信息:

Walkthrough: Organizing an ASP.NET MVC Application using Areas

摘錄:

然而,某些應用可以具有大數量的控制器,並且每個控制器可以與若干視圖相關聯。對於這些類型的應用程序,默認的ASP.NET MVC項目結構可能會變得笨拙。

爲了適應大型項目,ASP.NET MVC允許您將Web應用程序劃分爲稱爲區域的較小單元。區域提供了一種將大型MVC Web應用程序分成更小的功能組的方法。一個區域實際上是一個應用程序內部的MVC結構。應用程序可以包含多個MVC結構(區域)。

HTHS,
查爾斯

+0

看起來非常好,但我跟着tute和解決方案不工作,不幸的是我認爲代碼示例是錯誤的,從評論來看... – baron 2010-08-27 02:25:59

+0

嗯,我會看看我在家裏今晚解決方案(或在週末),看看我能不能改進這個演練。 – Charlino 2010-08-27 16:02:44