Asp.Net Coreのデータベースからルート値パラメータを動的に追加する

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

質問

私は、マルチテナントアプリケーションを作成しています。例えば、ライブラリごとに1つのデータベースがあります。

たとえば、すべての書籍/Books/GetAllBooksを取得しようとすると、データベースから取得できるライブラリ名を追加する必要があります。たとえば、 /LibraryName/Books/GetAllBooksように、ライブラリ名を動的に追加する必要があります。ユーザーは彼が所属する図書館からのみすべての図書を入手することができます。

私は何をすべきか?私自身のIRouter、自分のテンプレートルート、他のものを実装しますか?

受け入れられた回答

簡単なパス

あなたのURLにidを追加してください。この質問のURLを見てください:

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実装しIRouter 。 2つの方法を実装する必要があります。

1) async Task RouteAsync(RouteContext context) 。着信要求を解析し、 context.RouteDataコレクションに正しい「コントローラ」、「アクション」、および「id」値を追加します。その後、MVCはこの情報を使用してコントローラを呼び出します。

2) VirtualPathData GetVirtualPath(VirtualPathContext context) context.Valuesコレクションで提供されるcontroller + action + id値のurl(文字列VirtualPathData GetVirtualPath(VirtualPathContext context)を構築するVirtualPathData GetVirtualPath(VirtualPathContext context)

これはあなたを助けることができます:



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ