假设 ASP.NET 页面上有一个 TextBox
<asp:TextBox id="DateTextBox" runat="server" />
在代码隐藏中设置了一些值。
如何通过 HttpContext 或任何其他方式从另一类 C# 代码文件访问该值?
假设 ASP.NET 页面上有一个 TextBox
<asp:TextBox id="DateTextBox" runat="server" />
在代码隐藏中设置了一些值。
如何通过 HttpContext 或任何其他方式从另一类 C# 代码文件访问该值?
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.
您可以在控件内创建一个public property
返回对文本框的引用。
然后,您可以使用此属性来引用文本框。
或者
您可以session
在整个应用程序中存储并访问它。
将其存储在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...
}
您可以在回发期间将值放入 Session 中。然后从另一个类中的 Session 访问它。所以在你的表单加载事件中写下:
Session["MyValue"] = DateTextBox.Text
and then in the other class write this:
var val = HttpContext.Current.Session["MyValue"];