Webmatrix 2:存储静态值

时间:2012-09-04 12:52:43

标签: asp.net webmatrix webmatrix-2

哪里是存储静态值的最佳位置。 我将如何访问它。

我希望能够从任何页面访问静态值。但只需要在一个地方定义它们。

例如'电子邮件'和' phoneNumber'

我尝试了SessionPageData之类的内容,并在我的标题中定义了变量(由所有页面使用),但这不起作用。

部分在页面之后初始化,因此它根本不起作用,或者在第一次加载时不起作用。

E.g。第一次加载:

  

页面已加载< - 尝试访问变量。没有初始化。

     

Header Partial Loaded< - 变量初始化。

结果。页面显示变量。

我考虑将其存储在配置文件中。但我不知道如何从Webmatrix 2访问它。 我可以创建一个txt / ini文件或其他东西,但肯定解析文件不是最好的方法。 - 我已经尝试了这个并且它看起来没有像mvc3(config)那样有效,并且txt文件对于每个请求都不实用。

1 个答案:

答案 0 :(得分:5)

通过“静态”,如果您的意思是在应用程序的生命周期内不会更改的值,通常会使用HelperPage.App property进行存储。它基于dynamic类型,因此您可以创建任意属性:

App.Email = "someone@somewhere.com"; 

或者您可以使用AppState更传统的名称/价值收集方法:

AppState["email"] = "someone@somewhere.com";

但是,如果您的“静态”变量是特定于用户的,则应使用作为范围限定用户的Session。如果要永久存储数据库,请使用数据库。

您可以在_PageStart.cshtml中设置会话值(可能需要创建),或者在global.asax文件的Session_Start事件中设置会话值,然后在您想要的任何部分/视图中访问它们。