3

我正在开发一个管理面板,简而言之,它为许多类/模型(例如用户)提供 CRUD 功能。我现在实现这个的方式非常简单;使用脚手架模板生成控制器和视图,然后将它们全部组合在顶级Admin目录下。

该应用程序扩展了很多,管理控制器现在包含其他 5 个控制器的内容。管理视图文件夹有 20 多个视图。此外,管理页面的路径看起来很糟糕!

/Admin/UserCreate
/Admin/GroupCreate
...

我想我可以使用路由来解决这个问题。我的想法是可以将每个控制器分开,但仍会反映为管理页面的一部分:

/Admin/User/Create
/Admin/Group/Create

这将使路径更易于阅读,并使此应用程序的目录结构更易于接受。

1)是否可以利用自定义路由来制作“子控制器”?有没有更好的办法?我以前从未使用过路线。

2)在某个时候,我计划通过该控制器上的过滤器将管理控制器锁定在用户之外。如果我按上述方式更改路由,我的安全过滤器是否仍能正常工作?我是否需要对每个“子”控制器应用相同的过滤器?

4

1 回答 1

2

这可以使用MVC 区域来实现。

使用上面的示例,您只需创建一个单独的管理区域并将该控制器/操作结构放在其中,同时仍然保持没有管理员前缀的默认区域。:)

至于您的其他问题,您可以使用该Authorize属性来处理安全性,或者实现您自己的(派生自ActionFilterAttribute)并用它装饰您的安全方法。

于 2013-01-25T00:10:54.837 回答