【问题标题】:Where to define global constants in ASP.NET MVC?ASP.NET MVC 在哪里定义全局常量?
【发布时间】:2013-12-10 13:02:24
【问题描述】:

我有几个部分视图,它们都有公共类div 标签。

例如

PView1.cshtml

<div class="awesome">Part of PView1 html</div>

PView2.cshtml

<div class="awesome">Part of PView1 html</div>

其中一些共享值连接到模型中的动态数据:

<div id="someId + @Model.Id"></div>

我想把这些常量移到一个地方。

我应该在 ASP.NET MVC 中的哪里放置全局常量? 静态类?

【问题讨论】:

  • 最有可能是静态类或资源文件。
  • 另一种选择是使用其他人将继承的基本模型。
  • 使用静态类并扩展 Html 帮助器集

标签: c# asp.net asp.net-mvc razor constants


【解决方案1】:

您可以使用具有静态属性的静态类或公共 const 变量来处理您的常量。但我建议您使用 web.config 或自定义 xml 配置文件来存储常量字符串,然后编写一个静态类来访问它们。

【讨论】:

  • 你为什么推荐这种方式?
  • 自定义 XML 配置文件不会给我智能感知优势,我不希望用户更改这些字符串,它不是应该转到 web.config 的配置。
  • 用户不能更改您的配置文件(*.config)。如果您创建一个具有静态属性的静态类来访问您的常量,那么您的代码将具有智能意义。
【解决方案2】:

我从其他似乎并没有把它们放在一起的答案中拼凑起来,所以站在巨人的肩膀上......

  1. 右键单击项目

  2. 添加 ASP.NET 文件夹 App_LocalResources

  3. 右键单击 App_LocalResources

  4. 添加资源文件

  5. 添加 Resource1.resx

  6. 定义名称/值

  7. 右键单击 Resource1.resx 文件并选择属性

    确保它们如下:

    • 构建操作:嵌入式资源
    • 自定义工具:PublicResXFileCodeGenerator
    • 自定义工具命名空间:资源

您可以像这样在视图中引用这些值:

@Resources.Resource1.String1

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2018-06-14
    • 2016-05-01
    • 1970-01-01
    相关资源
    最近更新 更多