我有asp.net页面(Form = runat server)
2个文本框:
<input type="text" id="tb1" />
<asp:TextBox ID="tb2" runat="server" />
和按钮提交。
但是,当我在其中添加一些值时 - 按下按钮 - 只有tb2从服务器返回其值。
我认为输入字段值从客户端到服务器并且始终返回!
在什么情况下(在页面生命周期中)tb1是否会失去其值?
答案 0 :(得分:4)
<input type="text" id="tb1" />
是文字HTML
没有服务器端代码将值重新放入。
该功能是服务器端控件的一部分。
答案 1 :(得分:2)
POST将包含在tb1中输入的信息 - 因此可以从请求中读取
如果您将其更改为
<input type="text" id="tb1" runat="server" />
它会按你的意愿工作。
没有runat = server它不会“丢失”它的值 - 它永远不会被填充 - 因为它只是POST中的数据而没有连接到服务器端控件。
最后一点 - 明确回答您的一些评论 - POST数据在PreLoad事件之前处理 - 可以从http://msdn.microsoft.com/en-us/library/ms178472.aspx
找到答案 2 :(得分:1)
tb1
不是服务器端控件,它是一个普通的html dom对象。
您应该在Request.Form
值集合中的帖子后找到它的值。