asp.net-mvc - ASP.MVC 应用程序常量,最好/最优雅的方法是什么?

标签 asp.net-mvc asp.net-mvc-3 architecture constants

真的很简单的问题,

我只是在寻找在架构上最有效的社区支持。

说,以下案例:TempData["MySetting"] ?我应该在哪里存放 "MySetting" ?应该是

  • 在单独的类中,以便访问是 TempData[Config.MySetting];
  • 在 web.config 中,访问是 TempData[ConfigurationManager.AppSettings["MySetting"];
  • 内联,将其保留为字符串 TempData["MySetting"]; ?
  • 在某些常量表中的 DB 中,以便
    var mySetting = (string)_db.GetConstant("MySetting");
    TempData[mySetting];
    

  • 我不会处理选项 4,只是为了图片的完整性而带来它。
    那么你有什么建议为什么 ?

    编辑
    问题是关于 asp mvc 中的常量而不是 TempData 案例中的常量。

    谢谢。

    最佳答案

    在您的特定情况下,您应该在 TempData 周围做一个包装器这会将您的数据公开为属性(property)。所有访问TempData应该隐藏在那个包装里面。在这种情况下,"MySetting" 的所有用法将限制为最多两个。如果只有一种用法,则无需执行任何操作。如果有两个 - 你定义你的 "MySetting"private const field 。

    简而言之:

    public static class TempDataWrapper
    {
        private const string _mySettingName = "MySetting";
    
        public int MySetting
        {
            get { return (int) TempData[_mySettingName];}
            set { TempData[_mySettingName] = value;}
        }
    }
    

    为简洁起见,我们在这里不处理耦合(紧密)和错误处理(无)。

    关于asp.net-mvc - ASP.MVC 应用程序常量,最好/最优雅的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11916814/

    相关文章:

    jquery - jqGrid 的 LINQ 搜索中的可为 Null 值

    jquery - 隐藏文件输入在提交时不保留值

    asp.net-mvc - 在mvc中拖放文件

    architecture - 我对 REST 有什么不了解的地方?

    architecture - 什么是横向和纵向设计元素?

    c# - 内部连接上的 LINQ 查询错误

    Javascript 主函数在内部子函数之前首先触发

    asp.net-mvc-3 - MVC 3、单选按钮和模型

    asp.net-mvc - 您可以从 MVC 3 中的强类型模型中删除 HTML 字段前缀吗?

    ios - swift MVVM : Where to keep custom model data if we have an array of models