2009-08-25 38 views
0

我爲我的ASP.NET MVC應用程序(稱爲「Admin」)創建了一個Area項目。ASP.NET MVC中'Admin'應用程序的網站導航

這將包含所有的網站,在這裏用戶可以添加/刪除頁面的管理部分的邏輯等

有一個菜單頂部,對事物的用戶可以管理。 (例如,「內容」,「用戶」,等等)

對於每一種,我正在做的控制器(「ContentController」,「UsersController」等)

我想知道如何設置導航,因爲似乎有不同的方法。

一種方法是使用MvcSiteMap,其中包括創建「.sitemap」文件,並以‘MvcSiteMapNode’屬性裝飾我的控制器操作。

上述的問題是,它的複雜實現(特別是在地區的項目,因爲動物園在ASP.NET MVC的工作方式)。它也似乎是矯枉過正。

我想出了一個不同的方式,這是用我自己的屬性來裝飾每個控制器。然後我有一個幫助器方法,通過使用反射來遍歷每個控制器來呈現我的導航,挑選出具有該屬性的那些,然後將它們添加到導航菜單中。

你對上述方法有什麼想法?你能想到一個更簡單的方法嗎?

回答

1

所以,我已經做到了我的方式 - 每個控制器上的屬性,然後讀取所有在應用程序啓動(使用反射)的屬性,並將它們保存在存儲器中的靜態方法。

到目前爲止,這工作得很好,我也不需要任何MvcSiteMap的高級功能。

+0

我正在尋找*精確*這(基於控制器/動作屬性的導航) - 任何機會,你可以發佈你的源,無論多麼混亂? – Portman

+0

最新版本的MvcSiteMap似乎支持這個,使用[MvcSiteMapNode]屬性。 http://mvcsitemap.codeplex.com/ - 去這裏搜索MvcSiteMapNode。 – Jonathan