c# – 在代码中存储变量的最佳方法是什么?

我正在使用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最好保存在会话中,因为您希望在每次调用,每次页面视图,使用和不使用回发时使用它.

点赞