在Asp.Net Core中從數據庫動態添加路由值參數

asp.net-core asp.net-core-mvc c# entity-framework-core multi-tenant

我正在創建多租戶應用程序,例如每個庫有一個數據庫。

我想動態添加庫名到路由,例如,當用戶試圖獲取所有書籍/Books/GetAllBooks ,我必須添加庫名,可以從數據庫中檢索,例如: /LibraryName/Books/GetAllBooks ,所以用戶只能從他所屬的圖書館獲取所有圖書。

我該怎麼辦?實現我自己的IRouter,我自己的模板路由,還有其他什麼?

一般承認的答案

簡單的路徑

id添加到您的網址。看看這個問題的網址:

https://stackoverflow.com/questions/36718499/dynamically-add-route-value-parameter-from-database-in-asp-net-core

您可以將上一個路徑段更改為任何內容:
https://stackoverflow.com/questions/36718499/foo-bar仍然帶你來這裡。

沒有id

實現IRouter 。您需要實現兩種方法:

1) async Task RouteAsync(RouteContext context) ,它解析傳入請求並將正確的“controller”,“action”和“id”值添加到context.RouteData集合中。之後,MVC將使用此信息來呼叫您的控制器。

2) VirtualPathData GetVirtualPath(VirtualPathContext context) ,它為context.Values集合中提供的controller + action + id值構建url(字符串)。

這可以幫助您:



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow