使用 ASP.NET 从输入类型文本中检索键入的新值

Retrieve new value typed from input type text with ASP.NET

我在检索文本类型的输入元素时遇到问题,因为之前设置了一些 C# 代码,例如:

foo.aspx中的HTML元素定义为:

<input type="text" class="form-control" id="name" runat="server" />

从后面的代码,foo.aspx.cs,有这样的东西:

 protected void Page_Load(object sender, EventArgs e)
 {
    bool has_something = ...;
    if(has_something)
        name.Value = "X";
 }

has_something 为真时,如果用户在输入中输入 Y 的值,当我做类似的事情时(代码来自 foo.aspx.cs 也是):

  protected void go_Click(object sender, EventArgs e)
        {
            if (!IsValid)
                return;

            string Name = name.Value;
            Debug.WriteLine(string.Format("name = {0}", Name)); //X
       }

不是在输入 id = name 上获取当前值,比如说,我输入了 Y,而是在 Page_Load() 时间设置的旧值。

我错过了什么?我应该使用 Javascript 来设置值吗? 我该如何解决这个问题?

我已经编辑了我的原始回复以更正答案。

当页面在单击按钮时执行回发时,正在执行 Page_Load 函数中的代码。

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bool has_something = ...;
            if (has_something)
                name.Value = "X";
        }
    }