【问题标题】:Managing global settings in an ASP.NET MVC application?在 ASP.NET MVC 应用程序中管理全局设置?
【发布时间】:2014-01-08 22:53:04
【问题描述】:

我正在开发一个 ASP.NET MVC 5 应用程序,我需要管理一些全局参数,这些参数基本上只是一组键值对。我的要求如下:

  1. 从服务器配置文件中读取初始值。
  2. 在每个控制器中都有用于读取/写入和添加/删除的参数(就像执行某个控制器时可以添加新参数一样)。
  3. 参数应显示后续请求(驻留在Session 中或在QueryString 中序列化)。
  4. 我应该可以使用特殊的管理网页查看并轻松管理它们 (CRUD)。

我的“蛮力”方法只是用List<Tuple<string,string>> 实现一个静态类来保留设置,使用System.Web.Configuration.WebConfigurationManager 填充初始值,使用静态属性在会话变量中存储和检索列表并设计一个单独的控制器和视图来管理设置。

但这对我来说似乎是在重新发明轮子。是否有任何(不一定是成熟的)预先存在的解决方案(在 ASP.NET 中,或作为 NuGet 包)我可以依靠?或者也许我错过了 ASP.NET 中的一些基本内容?

更新:根据参数的性质,其中一些可能具有Application 的生命周期,而其中一些绑定到当前用户会话。因此,它们需要保存在 Session 对象中或在每个请求中“通过”。

【问题讨论】:

  • 如果它们是适用于所有的全局参数,那么我会使用Application 而不是Session
  • 那么这些键值对是临时的吗?一旦访问者会话结束,它们就会丢失?
  • @sunil 我更新了我的问题以解决您的评论。
  • 你为什么使用 List> 而不是 Dictionary?设置键不是唯一的吗?
  • @SergeyLitvinov 不,它们是独一无二的。我想使用List<Tuple<>> 只是为了通过向视图提供Enumerable<Tuple<>> 模型来简化CRUD 操作的动态视图生成。

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


【解决方案1】:

这听起来像是最常见的方法,我认为使用会话变量没有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    相关资源
    最近更新 更多