3

假设 ASP.NET 页面上有一个 TextBox

<asp:TextBox id="DateTextBox" runat="server" />

在代码隐藏中设置了一些值。

如何通过 HttpContext 或任何其他方式从另一类 C# 代码文件访问该值?

4

4 回答 4

4

You can access a property in you page via HttpContext even from a static method.

in your page:

public string DateTextBoxText
{
    get{ return this.DateTextBox.Text; }
    set{ this.DateTextBox.Text = value; }
}

somewhere else(even in a different dll):

public class Data
{
   public static string GetData() 
   { 
       TypeOfYourPage page = HttpContext.Current.Handler as TypeOfYourPage;
       if (page != null)
       {
          return page.DateTextBoxText;
          //btw, what a strange method!
       }
       return null;
    }
}

Note that this works only if it's called from within a lifecycle of this page.

It's normally better to use ViewState or Session to maintain variables across postback. Or just use the property above directly when you have a reference to this page.

于 2013-03-16T14:11:07.840 回答
1

您可以在控件内创建一个public property返回对文本框的引用。

然后,您可以使用此属性来引用文本框。

或者

您可以session在整个应用程序中存储并访问它。

于 2013-03-16T14:01:05.927 回答
1

将其存储在HttpContext Session http://www.codeproject.com/Articles/32545/Exploring-Session-in-ASP-Net

//Storing UserName in Session
Session["DateTextBox"] = DateTextBox.Text;

现在,让我们看看如何从会话中检索值:

//Check weather session variable null or not
if (Session["DateTextBox"] != null)
{
 // use it...
}
于 2013-03-16T14:03:58.933 回答
0

您可以在回发期间将值放入 Session 中。然后从另一个类中的 Session 访问它。所以在你的表单加载事件中写下:

Session["MyValue"] = DateTextBox.Text

and then in the other class write this:

var val = HttpContext.Current.Session["MyValue"];
于 2013-03-16T14:08:08.900 回答