text框在回发时丢失值

本文关键字:text | 更新日期: 2023-09-27 18:26:07

我有一个asp.net页面(Form=运行在服务器上)

2个文本框:

<input type="text" id="tb1" />
<asp:TextBox ID="tb2" runat="server" />

以及按钮提交。

然而,当我在其中放入一些值并按下按钮时,只有tb2从服务器上获取其值。

我认为输入字段的值总是从客户端到服务器,然后再回来!

在什么情况下(在页面生命周期中)tb1会失去价值吗?

text框在回发时丢失值

<input type="text" id="tb1" />是文本HTML
没有服务器端代码将值放回。

该功能是服务器端控件的一部分。

POST将包含在tb1中输入的信息,因此可以从请求中读取

如果你把它改成

<input type="text" id="tb1"  runat="server" /> 

它会按照你的意愿工作。

如果没有runat=server,它就不会"丢失"其值——它永远不会被填充——永远不会,因为它只是POST中的数据,并且没有连接到服务器端控件。

最后一点-为了明确地回答您的一些评论-POST数据是在PreLoad事件之前处理的-这可以从http://msdn.microsoft.com/en-us/library/ms178472.aspx

tb1不是服务器端控件,它是一个普通的html dom对象。

但是,您应该在Request.Form值集合中的帖子之后找到它的值。