在asp.net中将局部变量转换为全局变量

时间:2015-01-30 17:31:01

标签: c# asp.net

我在asp.net中有一个变量,用于存储隐藏字段的值。我需要在另一个aspx页面中访问该局部变量,因为我需要将此值作为参数传递给kendo javascript中的wcf服务URL。所以我需要全局变量中的值。

这是我的代码,

protected void Page_Load(object sender, EventArgs e)
{
    string s = hidden.Value;
}

我想要的是,

public string month_name = s;

这样我就可以在我的wcf服务网址中传递它,

url:"http://<%=strWcfServer%>/WcfService1/Service1.svc/LoadProductCounts_Monthly‌​?month=<%=month_name%>"

2 个答案:

答案 0 :(得分:1)

您可以在处理请求期间创建可以从Page中的其他方法访问的类级变量。在处理请求结束时,即使是同一Page类的另一个实例也无法使用此值。

如果你想创建一个可以从其他类访问的变量,我认为你应该使用Session对象。

Session["month_name"] = "the value you want to place here";

然后你可以从另一个类中读取这个值,简单如下:

string month_name = (string)Session["month_name"];

<强>更新

如果您只需要当前的月份名称,您可以使用它:

DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture)

在这种情况下,您不必使用Session对象。

答案 1 :(得分:0)

对全局变量的需求几乎总是设计问题的一个标志,尤其是在Web应用程序中。也就是说,可以使用会话变量(不是技术上的全局,但可以从任何地方通过某些工作访问)来完成,如Christos所提到的,或者使用静态类。 通过网络搜索找到以下内容:“asp全局变量”:

http://www.dotnetperls.com/global-variables-aspnet