将数据永久存储在RouteData.Values中

本文关键字:RouteData Values 存储 数据 | 更新日期: 2023-09-27 18:08:41

我将在RouteData中存储一些带有值的键。值并在控制器和视图之间传递数据,

RouteData.Values.Add("MyKey", "MyValue");

我将使用_Layout中的value来显示所有视图中的值。但当你切换到其他控制器时,似乎所有的键都会被移除。

是否可以在RouteData中永久存储一些键?值,并阻止删除它?

如果没有,我可以在哪里存储一些这样的数据,并从视图访问它?

我不想使用ViewBagViewData,因为我不能从IRouteConstraint

将数据永久存储在RouteData.Values中

访问它们

您可以为这些作业使用baseController类。所有控制器都使用这个baseController,您可以在其中定义所有通用对象。

:

public class BaseController : Controller
{
    protected override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        RouteData.Values.Add("MyKey", "MyValue");
        base.OnActionExecuting(filterContext);
    }
}

和其他控制器

public class HomeController : BaseController 
{
    // get route data values 
}