首页 > 解决方案 > RouteData 仅在 .NET Core 3 上不适用于 HttpContext

问题描述

我想设置 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。

标签: asp.net-mvcasp.net-corehttpcontextaction-filterroutedata

解决方案


推荐阅读