在ASP.NET MVC应用程序中管理全局设置?

3

我正在开发一个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 - Andy T
那么这些键值对是临时的吗?一旦访客会话结束,它们就会丢失? - sunil
@sunil 我更新了我的问题以回应你的评论。 - Alexander Galkin
你为什么使用 List<Tuple<>> 而不是 Dictionary<>?是因为设置的键不唯一吗? - Sergey Litvinov
@SergeyLitvinov 不是,它们是唯一的。我想使用 List<Tuple<>> 只是为了通过向视图提供一个 Enumerable<Tuple<>> 模型来简化 CRUD 操作的动态生成视图。 - Alexander Galkin
1个回答

1
那听起来就是最常见的方法,我认为使用会话变量没有什么问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接