2011-03-17 80 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,它反映了你的控制器,并自动为它们创建的路由。

相关问题