C#ASP.NET-通过类控制/更新textbox.text值

C#ASP.NET-通过类控制/更新textbox.text值,asp.net,class,textbox,Asp.net,Class,Textbox,这里的新手,我需要帮助我创建一个网站 我有一个类,它对用户输入的一些文本进行一些分析,然后该类找到一个合适的答案并将其发送回文本框。(理论上) 问题是我不知道如何从类控制和访问default.aspx页面上的文本框,我得到的只是“对象引用是必需的非静态字段” 我在designer文件中公开了文本框,但仍然没有乐趣( 我也读过这篇文章:,我认为这与我试图实现的目标是一致的,但我需要澄清/逐步说明如何实现这一目标 希望有人能给我指出正确的方向 非常感谢,, 卡尔 这是我添加到designer.cs文

这里的新手,我需要帮助我创建一个网站

我有一个类,它对用户输入的一些文本进行一些分析,然后该类找到一个合适的答案并将其发送回文本框。(理论上)

问题是我不知道如何从类控制和访问default.aspx页面上的文本框,我得到的只是“对象引用是必需的非静态字段”

我在designer文件中公开了文本框,但仍然没有乐趣(

我也读过这篇文章:,我认为这与我试图实现的目标是一致的,但我需要澄清/逐步说明如何实现这一目标

希望有人能给我指出正确的方向

非常感谢,, 卡尔

这是我添加到designer.cs文件中的代码:

公共全局::System.Web.UI.WebControls.TextBox TextBox3

    public string MyTextBoxText
    {
        get
        {
            return TextBox3.Text;
        }
        set
        {
            TextBox3.Text = value;
        }
    }
这是我创建的类方法:

公共静态cleanseMe(字符串输入) {

        string utterance = input;
        string cleansedUtt = Regex.Replace(utterance, @"[!]|[.]|[?]|[,]|[']", "");
        WebApplication1._Default.TextBox3.text = cleansedUtt;

    }
我可以返回我知道的cleansedUtt字符串,但是我是否可以从这个类中的这个方法将这个字符串附加到这个文本框中呢

我也尝试过这种方法,我编写了一个类,该类接受文本框的名称和要附加到该文本框的字符串。它只能在default.aspx页面上工作,并且不能识别不同类中的文本框名称。代码如下:

public class formControl
{
    public static void ModifyText(TextBox textBox, string appendthis)
    {   
        textBox.Text += appendthis + "\r\n";
    } 

我建议您不要访问
中的
控件
页面,如
文本框
。无论类的功能是什么,都可以将它们转换为接受参数并返回一些值的函数,然后根据该值设置,这将是一个更有用的好做法e> 控制值

因此,现在您有了
可重用函数
,您可以从任何想要的页面使用它。您不需要为每个文本框编写它

这里我给你举一个简单的例子

public class Test
{
   public bool IsValid(string value)
   {
       // Your logic 
       return true;
   }
}
现在,您可以像这样在页面上简单地使用它

  Test objTest = new Test();
  bool result=objTest.IsValid(TextBox1.Text);
  if(result)
  {
    TextBox1.Text="Everything is correct";
  }
  else
  {
    TextBox1.Text="Something went wrong";
  }
如果您的课程在同一个项目(Web项目)中,则以下操作将起作用:

public class Test
{
    public Test()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    public static void ValidateTextBox(System.Web.UI.WebControls.TextBox txt)
    {
        //validation logic here
        if (txt != null)
            txt.Text = "Modified from class";
    }
}
您可以从您的Web表单中这样使用:

protected void Page_Load(object sender, EventArgs e)
{
    Test.ValidateTextBox(this.txt);
}

如果您的班级位于不同的班级(班级项目),您需要在您的项目中添加对
System.Web
的引用。

我需要澄清/一步一步地
。但是您的代码在哪里。您尝试了什么?这是从designer.cs文件public global::System.Web.UI.WebControls.TextBox3;公共字符串MyTextBoxText{get{return TextBox3.Text;}set{TextBox3.Text=value;}}编辑您的问题并添加一些代码,以便我们可以看到您正在使用的内容。通常您不应该修改designer.cs文件。谢谢Sachin,我感谢您的帮助。:)谢谢Hanlet,谢谢你的帮助。我会试试看,然后告诉你。:)