从C#类访问ASP.NET页面的TextBox值

时间:2013-03-16 13:58:40

标签: asp.net httpcontext

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

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

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

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

4 个答案:

答案 0 :(得分:4)

您甚至可以通过静态方法HttpContext访问您页面中的媒体资源。

在您的页面中

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

其他地方(即使是在不同的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;
    }
}

请注意,只有在此页面的生命周期内调用它才能正常工作。

通常最好使用ViewStateSession来维护回发后的变量。或者只要在引用此页面时直接使用上面的属性。

答案 1 :(得分:1)

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

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

OR

您可以存储到session,然后在整个应用程序中访问它。

答案 2 :(得分: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...
}

答案 3 :(得分:0)

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

Session["MyValue"] = DateTextBox.Text

然后在另一个类中写下这个:

var val = HttpContext.Current.Session["MyValue"];