我正在使用ASP.NET Core 3.1中内置的类DynamicRouteValueTransformer
来执行动态控制器路由,如下面的代码所示。
public class UrlRouteTransformer : DynamicRouteValueTransformer
{
public override ValueTask<RouteValueDictionary> TransformAsync(HttpContext httpContext, RouteValueDictionary values)
{
var controller = "home";
var action = "index";
//Make decision here on which controller and action to call. i.e call the database etc
values["controller"] = controller;
values["action"] = action;
return new ValueTask<RouteValueDictionary>(values);
}
}
此代码可以正常工作,但是我想知道您将如何设置数据令牌?
通过HttpContext
类和GetRouteData
扩展方法:
httpContext.GetRouteData().DataTokens["token"] = "value";
当然,token只是一个例子。