我正在开发一个管理面板,简而言之,它为许多类/模型(如用户)提供CRUD功能。我现在实现的方式非常简单;使用脚手架模板生成控制器和视图,然后将它们全部合并到顶级Admin
目录下。
应用程序已经扩展了很多,管理控制器现在包含了其他5个控制器的内容。 admin视图文件夹有20多个视图。此外,管理页面的路径看起来很糟糕!
/Admin/UserCreate
/Admin/GroupCreate
...
我想我可以使用路由来解决这个问题。我的想法是,可以将每个控制器分开,但仍然会反映为管理页面的一部分:
/Admin/User/Create
/Admin/Group/Create
这将使路径更容易阅读,并使该应用程序的目录结构更加可忍受。
1)是否可以利用自定义路由基本上制作“子控制器”?有没有更好的办法?我之前从未使用过路线。
2)在某些时候,我计划通过该控制器上的过滤器将管理控制器从用户锁定。如果我如上所述更改路由,我的安全过滤器是否仍能正常运行?我是否需要对每个“子”控制器应用相同的过滤器?
答案 0 :(得分:2)
这可以使用MVC Areas实现。
使用上面的示例,您只需创建一个单独的管理区域并将该控制器/操作结构放在其中,同时仍保留默认区域而不使用Admin前缀。 :)
至于您的其他问题,您可以使用Authorize
属性来处理安全性,或者实现自己的(从ActionFilterAttribute
派生)并使用它装饰您的安全方法