我想设置 RouteData,但更改不适用于 HttpContext。
public class LocalizeRouteAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
context.RouteData.Values["culture"] = "en";
string routeCulture = context.HttpContext.GetRouteValue("culture")?.ToString();
// ON NET CORE 2.2 routeCulture return "en"
// ON NET CORE 3.1 routeCulture return null
base.OnActionExecuting(context);
}
}
我错过了什么新东西吗?
要重现这种情况,您必须在新的 MVC 简单项目上创建过滤器并将其应用于 HomeController。它适用于 2.2,但不适用于 3.1。