【发布时间】:2010-09-06 14:00:47
【问题描述】:
我在一个表单上有几个“ASP:TextBox”控件(大约 20 个)。
当表单加载时,文本框会从数据库中填充。
用户可以更改填充的值,当他们提交表单时,我会获取发布到服务器的值并有条件地保存它们(由某些业务逻辑决定)。
除了 1 个文本框外,所有文本框都按预期工作。
在回发时输出的奇数框不包含用户在框中键入的更新值。
调试应用程序时,很明显myTextBox.Text 反映的是旧的预填充值,而不是用户提供的新值。
每个其他框都正确显示了它们各自的用户提供的值。
我确实找到了解决方法。
我的解决方案基本上是从Request.Form 对象中提取文本框的值:Request.Form[myTextBox.UniqueID],它确实包含用户提供的值。
这里会发生什么?
正如我所提到的,其他文本框可以正常接收用户提供的值,而这个有问题的特殊文本框没有与之关联的任何逻辑——它只是获取值并保存它。
此文本框与其他文本框的主要区别在于,这是一个多行框(用于输入注释),我相信它呈现为 HTML“textarea”标签,而不是 ASP.NET 中的“input”标签。
【问题讨论】: