使用 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";
}
}
我在检索文本类型的输入元素时遇到问题,因为之前设置了一些 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";
}
}