命名空间等效于ASP.NET MVC?

在Rails中,我可以创建一个命名空间,以便将视图封装在给定名称(或URL前缀)内

我想要做的是创建一个名称空间(或我相信的Area?),该名称空间将所有管理员控制器封装在一个给定的名称内.

例如,我想创建一个Admin名称空间,每当我访问www.myapp.com/admin/时,它将使用索引方法为我提供控制器管理员,而当我访问www.myapp.com/admin时, / products应该使用index方法调用product控制器,依此类推,因为我也想将这些控制器限制为必须以该身份登录的人员.

URL和路由明智,我该如何完成前面提到的?

解决方法:

实际上,该功能在asp.net mvc中称为Areas.

您在Visual Studio中右键单击您的项目,然后单击“添加区域”.

现在,您将拥有一个子文件夹,其中包含用于视图,控制器和共享文件夹的文件夹.还将一条路线添加到项目中.

障碍
在某些情况下,如果您在其中一个区域内装有HomeController,可能会导致问题,因为它会与网站根目录的HomeController路由冲突.史蒂文·桑德森(Steven Sanderson)在他的书中对此进行了修复:

将默认路由更改为此:

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:

上一篇:阿里云学生成长计划领取资格考试


下一篇:CakePHP中的动态路由