4

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

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

例如“电子邮件”和“电话号码”

我已经尝试过SessionPageData,并在我的标题中定义变量(所有页面都使用),但这不起作用。

部分是在页面之后初始化的,所以它要么根本不起作用,要么在第一次加载时不起作用。

例如第一次加载:

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

标头部分加载<-变量初始化。

结果。页面不显示变量。

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

4

1 回答 1

5

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

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

或者,您可以将更传统的名称/值收集方法与AppState一起使用:

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

但是,如果您的“静态”变量是特定于用户的,则应使用 Session ,因为它的范围仅限于用户。或者,如果您想永久存储它们,请使用数据库。

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

于 2012-09-07T20:19:06.390 回答