2017-08-26 67 views
4

讓我們假設我有一個控制器,其中有一些角色的路由和其他角色的其他路由器。我想讓代碼更加清晰,將這些路線分成部分類。我知道我可以做到。在ASP.NET中具有不同屬性的部分控制器MVC

但我想知道如果我能做到這樣:

[Authorize(Roles = "Admin")] 
[MyLogger] 
public partial class TheController{ 
    // Admin routes 
} 

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

[AllowAnonymous] 
public partial class TheController{ 
    // public routes 
} 

和每個部分類內部路由只得到屬性到那個部分類。

可能嗎?

+0

我假設你想要的是區域 - 請參閱[使用區域組織應用程序](https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas) –

+0

我閱讀了鏈接但如果我理解得很好,創建一個不同的控制器就沒有區別。與一個區域的網址也將改變,這是正確的?。 PS這是一項寧靜的服務,我沒有意見。 我的情況,我已經有了生產中的所有論文路線,並且只是重新組織代碼以便將屬性更改爲這些路由組,所以我不想更改任何網址 –

+1

您無法通過使用多個控制器與您所顯示的名稱相同 –

回答

0

在您的示例中,只有一個具有兩個屬性的類TheController。最好的方法是讓兩條路線和一條路線約束不受限於任何允許基於角色的參數。

相關問題