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

时间:2014-06-16 07:51:34

标签: c# asp.net-mvc

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

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

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

是否仍然将某些密钥永久存储在 RouteData.Value 中,并阻止将其删除?

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

我不想使用 ViewBag ViewData ,因为我无法从 IRouteConstraint

访问它们

1 个答案:

答案 0 :(得分:1)

您可以对这些作业使用 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 
}