ASP.NET MVC 中的命名空间等效吗?

2024-03-05

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

我想要做的是创建一个命名空间(或我认为的区域?),它将所有管理员控制器封装在给定名称内。

例如,我想创建一个 Admin 命名空间,每当我访问 www.myapp.com/admin/ 时,它都会使用索引方法为我提供控制器管理员,并且每当我访问 www.myapp.com/admin 时/products 它应使用索引方法等调用产品控制器,因为我还想将这些控制器限制为必须登录的人员。

URL 和路由方面,我怎样才能完成前面提到的?


该功能实际上is called Areas在 ASP.NET MVC 中。

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

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

Snag:有一种情况,如果你有一个,它会导致问题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
);

See MDSN 文章 http://msdn.microsoft.com/en-us/library/ee671793.aspx.

Asp.net 区域上的视频。 http://www.asp.net/mvc/videos/aspnet-mvc-2-areas

史蒂文·桑德森的好文章: http://blog.stevensanderson.com/2008/11/05/app-areas-in-aspnet-mvc-take-2/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC 中的命名空间等效吗? 的相关文章