2011-03-17 42 views
3

在鐵軌我可以以封裝給定的名稱中的觀點(或網址前綴)ASP.NET MVC中的等價名稱空間?

我想要做的就是創建一個命名空間(或地區我相信)指出應封裝所有的管理員控制器上創建一個命名空間在給定的名字裏面。

例如,我想創建一個Admin命名空間,每當我到www.myapp.com/admin/時,它都會使用索引方法讓我成爲控制器管理員,並且每當我去www.myapp .com/admin/products應該使用索引方法調用產品控制器等,因爲我也想將這些控制器限制爲必須登錄的人。

URL和路由明智,我怎麼能完成前面提到的?

回答

4

功能infact 區域在asp.net mvc。

右鍵單擊Visual Studio中的項目,然後單擊添加區域。

您現在將擁有一個包含Views,Controllers和Shared文件夾文件夾的子文件夾。項目中還添加了一條路線。

障礙: 有一種情況,如果你有一個HomeController內的地區,因爲它會與網站根HomeController路線衝突的一個會引起問題的情況。史蒂芬·桑德森已定爲這在他的書:

更改您的默認路由到這一點:

routes.MapRoute(
"Default", // Route name 
"{controller}/{action}/{id}", // URL with parameters 
new { controller = "Home", action = "Index", // Parameter defaults 
id = UrlParameter.Optional }, 
new [] { "MyAppName.Controllers" } // Prioritized namespace 
); 

MDSN Articles

Video on Asp.net Areas.

Good article by Steven Sanderson:

+0

這正是我需要的,謝謝! – Gotjosh 2011-03-17 19:07:14

+0

歡迎您:) – gideon 2011-03-17 19:11:31

+0

我還有一個問題。我是否必須重新制作模型/控制器,還是不能使用我在根應用程序中使用的相同模型?我希望我的應用盡可能保持乾爽。 – Gotjosh 2011-03-17 19:30:51

0

MvcCodeRouting允許你組織控制器,觀點和使用的命名空間層次結構的URL,它反映了你的控制器,並自動爲它們創建的路由。

相關問題