首页 > 解决方案 > 如何全局声明一个变量,以便我可以在 mvc 中的所有其他 viwes 中访问它

问题描述

我需要全局声明变量,以便我可以在所有应用程序中使用它。基本上我想全局声明一个堆栈,以便我可以在我的 MVC 应用程序中的所有视图中使用它。

标签: c#asp.net-mvc-4model-view-controller

解决方案


通常 C# 中没有“全局变量”。但是,您可以创建一个static类的成员并基本上“全局”地访问它。例如,假设您在模型中创建它:

public class GlobalValues
{
    public static string MyValue { get; set; } = "This is globally accessible.";
}

然后在您的应用程序中的任何地方,您都可以引用它:

GlobalValues.MyValue

因此,在您看来,您可能只是拥有:

@GlobalValues.MyValue

需要注意的几点是:

  1. 如果该类位于视图不知道的命名空间中,您可以完全限定类名称,或添加@using指令或修改应用程序的配置以将该命名空间自动导入视图。
  2. 如果该值与现有模型有任何关联,则它可能属于该模型。这里的一GlobalValues堂课只是为了演示。拥有一堆你不知道该放在哪里的东西很快就会成为代码库中的维护噩梦。
  3. Astring当然在这里只是一个例子。您的财产可以是您喜欢的任何类型。如果它相当复杂并且需要更多的初始化逻辑,那么静态构造函数将是您放置该逻辑的地方。

推荐阅读