Asp.net textbox.text始终返回空字符串,而不是用户';s输入的文本

Asp.net textbox.text始终返回空字符串,而不是用户';s输入的文本,asp.net,Asp.net,昨晚我的代码运行正常,第二天我的文本框突然出现。文本总是有空字符串。 我的代码是: 事件名称*: 代码隐藏: protected void Page_Load(object sender, EventArgs e) { } protected void create_Click(object sender, EventArgs e) { if (!object.Equals(Session["UserLoginId"], null)) { int mid

昨晚我的代码运行正常,第二天我的文本框突然出现。文本总是有空字符串。
我的代码是:

事件名称*:


代码隐藏:

protected void Page_Load(object sender, EventArgs e) {
} 

protected void create_Click(object sender, EventArgs e) {

    if (!object.Equals(Session["UserLoginId"], null)) { 

        int mid = 0; 
        int cid = 0; 
        bool valid = true;

        if (this.TextBox1.Text == "") {

            error.Text = "<p style='color:red'>Marked Fields are compulsory!!</p>"; 

        }

        else { 
            .... // database insert .... 
        }
受保护的无效页面加载(对象发送方,事件参数e){
} 
受保护的void create_Click(对象发送方,事件参数e){
如果(!object.Equals(Session[“UserLoginId”],null)){
int-mid=0;
int-cid=0;
bool valid=true;
如果(this.TextBox1.Text==“”){
错误。Text=“

标记的字段是必需的!!

”; } 否则{ ..//数据库插入。。。。 }
我总是以错误结束。文本值


为什么?

如果页面回发,那么用户输入的所有数据都将被删除,因为控件是无状态的,所以您应该通过EnableViewState=true来保持数据输入。

有点提到过,但是您应该确保您选中的回发事件并没有清除文本框。默认情况下会这样做。 试着这样做:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
        {
            if (this.TextBox1.Text == "")
            {
                error.Text = "<p style='color:red'>Marked Fields are compulsory!!</p>";
            }
        else
        {
            //.....
        }
    }
}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!IsPostBack)
{
如果(this.TextBox1.Text==“”)
{
错误。Text=“

标记的字段是必需的!!

”; } 其他的 { //..... } } }
在添加新行时清除文本框时也存在类似问题。这是单击“添加”按钮时页面重新加载的问题

通过添加以下内容修复了此问题:

Sub Page_Load
  If Not IsPostBack Then 
    BindGrid()
  End If
End Sub

根据微软的文档。

我有这个问题,但我在javascript中使用Telerik Ajax request和target。我有一个RadTextBox和一个RadButton。我从它们两个调用相同的代码,但如果我从文本框调用它并请求回发,文本框在页面加载中是空的。因此我调用
RadAjaxManager.ajaxRequestWithTarget('someUserControlClientID','myTextBoxText');
因此,在页面加载中,我可以抓取文本,如果文本没有发送到服务器,则
Request.Form(“\uu EVENTARGUMENT”)
将保存我的文本框值。
顺便说一句,RadAjaxManager.ajaxRequestWithTarget类似于
\uuudopostback('targetID','arguments'))
。希望这对某人有所帮助。我没有时间调查我为什么会丢失此请求的文本,所以这是我所做的解决方法。

我也遇到了类似的问题。我在回发时有一个textarea将数据馈送到数据库。我还设计了该页面以从同一数据库字段填充textarea。失败的原因是我忘记了将我的重新加载逻辑放入
if(!IsPostPack){}
阻塞。当回发发生时,页面加载事件再次被触发,我的重新加载逻辑在我可以记录初始值之前覆盖了文本区域。

我怀疑在未包含的代码中还有更多的事情发生。可能在
页面加载
中有什么东西正在清除
文本框
?可能存在错误asp.net webform中应用程序中的多个表单标记只有一个表单标记允许检查that@ImranRashid完全相同的问题毁了我一整天的时间..母版页中出现了一个带有runat=server属性的表单标记,首先我在代码中得到了空值..然后我得到了两个服务器端表单标记错误!:/@gitesh-将此代码添加到你的问题。如果没有其他东西,它的格式会更好。我没有在页面上做任何事情。加载是
创建
你的按钮?,请发布按钮的
aspx
,我想知道你是否使用更新面板?可能有一些可能性:
1-你没有输入数据。2-有一些验证。3-你清空文本框,什么时候re.
如果你能按ctrl+F键找到此文本框的所有引用,以确保。不起作用!!我已经找到了原因,但不知道为什么会发生这种情况,我已经更改了我的主文件,并且新的主文件设计不起作用,否则代码很好并且起作用,我已经检查过了。现在为什么新的主文件是mak正在使用asp文本框在回发后失去状态。。。????