哪里是存储静态值的最佳位置。 我将如何访问它。
我希望能够从任何页面访问静态值。但只需要在一个地方定义它们。
例如'电子邮件'和' phoneNumber'
我尝试了Session
和PageData
之类的内容,并在我的标题中定义了变量(由所有页面使用),但这不起作用。
部分在页面之后初始化,因此它根本不起作用,或者在第一次加载时不起作用。
E.g。第一次加载:
页面已加载< - 尝试访问变量。没有初始化。
Header Partial Loaded< - 变量初始化。
结果。页面不显示变量。
我考虑将其存储在配置文件中。但我不知道如何从Webmatrix 2访问它。 我可以创建一个txt / ini文件或其他东西,但肯定解析文件不是最好的方法。 - 我已经尝试了这个并且它看起来没有像mvc3(config)那样有效,并且txt文件对于每个请求都不实用。
答案 0 :(得分:5)
通过“静态”,如果您的意思是在应用程序的生命周期内不会更改的值,通常会使用HelperPage.App property进行存储。它基于dynamic
类型,因此您可以创建任意属性:
App.Email = "someone@somewhere.com";
或者您可以使用AppState更传统的名称/价值收集方法:
AppState["email"] = "someone@somewhere.com";
但是,如果您的“静态”变量是特定于用户的,则应使用作为范围限定用户的Session。如果要永久存储数据库,请使用数据库。
您可以在_PageStart.cshtml中设置会话值(可能需要创建),或者在global.asax文件的Session_Start事件中设置会话值,然后在您想要的任何部分/视图中访问它们。