我正在使用asp.net和c#.
我有一些变量,如CurrentCulture,SignedinUserEmail,MenuItemID,用于在不同方法和事件中使用的每个页面,哪种方式最适合保存它们的值?
private string _CurrentCulture;
private string CurrentCulture
{
get
{
return _CurrentCulture;
}
set
{
_CurrentCulture = value;
}
}
要么
private string CurrentCulture
{
get
{
if (ViewState["CurrentCulture"] == null)
{
return "en-UK";
}
else
{
return ((string)ViewState["CurrentCulture"]);
}
}
set
{
ViewState["CurrentCulture"] = value;
}
}
它们的值可能由查询字符串或另一个局部变量分配.
最佳答案 我们可以最好地使用每一个:
>如果您需要在回发后将其保存,请将其保存到viewstate.如果你没有回帖,没有理由把它保存在那里.
>如果您希望从自己的页面获取变量,或将其发送到页面上的其他自定义控件,请将其保存到变量中.
>如果您想在其他页面上使用它,请将其保存到会话中 – 例如,如果某些用户选择了更喜欢的语言,则在会话中保存该选择并在下一页上使用它.
>如果您赢得了用户能够保存网址,请使用网址参数,并一起保留这些参数.
CurrentCulture,SignedinUserEmail最好保存在会话中,因为您希望在每次调用,每次页面视图,使用和不使用回发时使用它.