c# - 如何全局声明一个变量,以便我可以在 mvc 中的所有其他 viwes 中访问它
问题描述
我需要全局声明变量,以便我可以在所有应用程序中使用它。基本上我想全局声明一个堆栈,以便我可以在我的 MVC 应用程序中的所有视图中使用它。
解决方案
通常 C# 中没有“全局变量”。但是,您可以创建一个static
类的成员并基本上“全局”地访问它。例如,假设您在模型中创建它:
public class GlobalValues
{
public static string MyValue { get; set; } = "This is globally accessible.";
}
然后在您的应用程序中的任何地方,您都可以引用它:
GlobalValues.MyValue
因此,在您看来,您可能只是拥有:
@GlobalValues.MyValue
需要注意的几点是:
- 如果该类位于视图不知道的命名空间中,您可以完全限定类名称,或添加
@using
指令或修改应用程序的配置以将该命名空间自动导入视图。 - 如果该值与现有模型有任何关联,则它可能属于该模型。这里的一
GlobalValues
堂课只是为了演示。拥有一堆你不知道该放在哪里的东西很快就会成为代码库中的维护噩梦。 - A
string
当然在这里只是一个例子。您的财产可以是您喜欢的任何类型。如果它相当复杂并且需要更多的初始化逻辑,那么静态构造函数将是您放置该逻辑的地方。
推荐阅读
- postgresql - Postgresql 表列,如何将 Unixtimestamp 转换为可读时间戳?
- python - python if语句文本
- typo3 - Extbase Persistence TypoScript 是否应该始终全局加载?
- java - 使用 JShell 进行调试
- angularjs - 如何使用 Sharepoint Rest API 过滤多行文本字段?
- qt - 如何使用 QMAKE 在 build 文件夹中复制或创建包含特定文件的文件夹
- vue.js - vuejs:如何在组件内预加载图像
- python - 将小复杂的正则表达式转换为 python 正则表达式
- c# - Roslyn - CodeFixProvider 正在被解雇,但 DiagnosticAnalyzer 不适用于类析构函数
- c# - 面板控制上的图形创建清除不起作用