asp.net-mvc - 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。
解决方案
推荐阅读
- reactjs - 如何解决 useEffect 中的依赖关系问题?
- python - 如何将pygame中的多个图像添加到网格上?
- google-cloud-platform - 运行 gcloud 命令时,我收到“错误:可达性检查失败”。
- c++ - 如何将 C++ 结构暴露给 QML?
- matlab - 如何自动确定图形改变斜率的位置,你可以拟合 -Matlab
- android - removeEventListener 不能在两个 Firebase 项目上的 Firebase 数据库上工作
- wordpress - 用户自定义页面
- javascript - 上下拖动行为
- python - 模块之间共享的 Python 多处理池
- node.js - 如何在没有每个人都下载证书颁发机构的情况下拥有安全的 https?