在运行时更改路线

时间:2015-04-16 02:20:31

标签: asp.net-mvc asp.net-mvc-routing

目前,我们正致力于HRIS(人力资源信息系统)。我们有不同的用户类型,例如Admin,HR,Employee。但是用户类型不是静态的。我们希望为每种用户类型设置不同的路由。

e.g。

https://website/admin/{controller}/{id}

路线取决于登录系统的用户。将读取其用户类型。

我们是否可以知道是否可以为每种用户类型配置路由?

2 个答案:

答案 0 :(得分:0)

这与以下问题非常相似:MVC role-based routing

基本上,您使用区域,并结合路由约束。

答案 1 :(得分:0)

从我的观点来看,解决方案是:

  1. 您创建一个与模式匹配的路径(实际URL):

    https://website/admin/3
    

    保存此用户的所有逻辑 - 可能是,调用Model,要求相应的用户控制器,例如 superadmin ,稍后重定向到...

  2. 另一个匹配的网址

    https://website/admin/superadmin/3
    

    现在同时包含controller = superadmin和变量id = 3。不说,路由应该是不同的 - 当controllerid(整数)或string时,您可以实现逻辑,以保持逻辑更集中。

  3. 提到:

    https://website/admin/3
    

    应该没问题 - 您可以在不重定向的情况下处理来自相应控制器的请求(参见1.点)