ASP.NET MVC 中具有不同属性的部分控制器

Nic*_*aga 5 c# asp.net-mvc

假设我有一个控制器,它具有通往某种角色的路由和用于其他角色的其他路由器。我想让代码更清晰地将这些路由分成部分类。我知道我能做到。

但我想知道我是否可以这样做:

[Authorize(Roles = "Admin")]
[MyLogger]
public partial class TheController{
     // Admin routes
}
Run Code Online (Sandbox Code Playgroud)

[Authorize(Roles = "OtherRole")]
public partial class TheController{
     // Other routes that require auth
}
Run Code Online (Sandbox Code Playgroud)

[AllowAnonymous]
public partial class TheController{
     // public routes
}
Run Code Online (Sandbox Code Playgroud)

每个分部类内的路由仅获取该分部类的属性。

是否可以?

Ric*_*res 1

在您的示例中,只有一个类 TheController 具有这两个属性。最好的方法是拥有两条路由和一个路由约束,该路由约束不绑定到任何允许基于角色的其中之一的参数。