我要在 RouteData.Values 中存储一些带有值的键,并在控制器和视图之间传递数据,
RouteData.Values.Add("MyKey", "MyValue");
我将使用 _Layout 中的值来显示所有视图中的值, 但是当你去其他控制器时,似乎所有键都会被移除。
是否仍然将某些密钥永久存储在 RouteData.Value 中,并阻止将其删除?
如果没有,我在哪里可以存储这样的数据并从View中访问它?
我不想使用 ViewBag 或 ViewData ,因为我无法从 IRouteConstraint
访问它们答案 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
}