在 rails 中,我可以创建一个命名空间,以便将 View 封装在给定名称(或 URL 前缀)中
我想做的是创建一个命名空间(或者我认为是区域?),它将所有管理员 Controller 封装在一个给定的名称中。
例如,我想创建一个 Admin 命名空间,每当我访问 www.myapp.com/admin/时,它都会使用 index 方法让我成为 Controller 管理员,并且每当我访问 www.myapp 时。 com/admin/products 它应该使用 index 方法调用产品 Controller 等等,因为我也想将这些 Controller 限制为必须登录的人。
URL 和路由明智,我怎样才能完成前面提到的?
最佳答案
在 asp.net mvc 中,该功能实际上 称为 Areas。
您在 Visual Studio 中右键单击您的项目,然后单击“添加区域”。
您现在将拥有一个子文件夹,其中包含 Views、Controllers 文件夹和 Shared 文件夹。还将路由添加到项目中。
障碍:
如果您的某个区域中有一个 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 .
关于c# - ASP.NET MVC 中等效的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5343053/