在 Asp.Net Core 中从数据库动态添加路由值参数
Dynamically add route value parameter from database in Asp.Net Core
我正在创建多租户应用程序,例如,每个图书馆只有一个数据库。
我想在路由中动态添加图书馆名称,例如,当用户试图获取所有书籍时 /Books/GetAllBooks
,我必须添加图书馆名称,可以从数据库中检索,例如:/LibraryName/Books/GetAllBooks
, 所以用户只能从他所属的图书馆获得所有书籍。
我该怎么办?实现我自己的 IRouter,我自己的模板路由,还有别的吗?
简单路径:
将 id
添加到您的 url。看url本题:
您可以将最后一个路径段更改为任何内容:
没有id:
实施IRouter
。您将需要实施两种方法:
1) async Task RouteAsync(RouteContext context)
解析传入请求并将正确的 "controller"、"action" 和 "id" 值添加到 context.RouteData
集合中。稍后,MVC 将使用此信息调用您的控制器。
2) VirtualPathData GetVirtualPath(VirtualPathContext context)
为 controller+action+id 值构建 url(字符串),在 context.Values
集合中提供。
这可以帮助你:
我正在创建多租户应用程序,例如,每个图书馆只有一个数据库。
我想在路由中动态添加图书馆名称,例如,当用户试图获取所有书籍时 /Books/GetAllBooks
,我必须添加图书馆名称,可以从数据库中检索,例如:/LibraryName/Books/GetAllBooks
, 所以用户只能从他所属的图书馆获得所有书籍。
我该怎么办?实现我自己的 IRouter,我自己的模板路由,还有别的吗?
简单路径:
将 id
添加到您的 url。看url本题:
您可以将最后一个路径段更改为任何内容: 没有id: 实施 1) 2) 这可以帮助你:
IRouter
。您将需要实施两种方法:async Task RouteAsync(RouteContext context)
解析传入请求并将正确的 "controller"、"action" 和 "id" 值添加到 context.RouteData
集合中。稍后,MVC 将使用此信息调用您的控制器。VirtualPathData GetVirtualPath(VirtualPathContext context)
为 controller+action+id 值构建 url(字符串),在 context.Values
集合中提供。