Asp.net Webmatrix 2:存储静态值

Asp.net Webmatrix 2:存储静态值,asp.net,webmatrix,webmatrix-2,Asp.net,Webmatrix,Webmatrix 2,哪里是存储静态值的最佳位置。 我将如何访问它 我希望能够从任何页面访问静态值。但只需要在一个地方定义它们 例如“电子邮件”和“电话号码” 我尝试过Session和PageData之类的方法,并在所有页面使用的标题中定义变量,但这不起作用 该部分在页面之后初始化,因此它要么根本不工作,要么在第一次加载时不工作 例如,首次装载: 静态加载的页面,如果您指的是在应用程序的整个生命周期内不会更改的值,则通常用于存储。它基于动态类型,因此您可以创建任意属性: App.Email = "someone@so

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

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

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

我尝试过Session和PageData之类的方法,并在所有页面使用的标题中定义变量,但这不起作用

该部分在页面之后初始化,因此它要么根本不工作,要么在第一次加载时不工作

例如,首次装载:


静态加载的页面,如果您指的是在应用程序的整个生命周期内不会更改的值,则通常用于存储。它基于动态类型,因此您可以创建任意属性:

App.Email = "someone@somewhere.com"; 
或者,您可以使用更传统的名称/值收集方法:

但是,如果静态变量是特定于用户的,则应该使用会话,因为会话的作用域是针对用户的。如果要永久存储,请使用数据库


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

这与session会话变量的作用域为用户有何区别。AppState变量的作用域是应用程序。请看我对我的回答所做的修改,以及我将把它放在哪里,以便我可以从每一页访问它。请注意,分区会在页面之后初始化,因此会出现无法在第一次加载时工作的会话问题。您可以在_PageStart.cshtml中设置会话值,或者在global.asax文件的session _Start事件中设置会话值,如果_PageStart指的是类似于_sitelawayit a partial。。并且没有Global.asax文件。
AppState["email"] = "someone@somewhere.com";