Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的一个aspx文本框值没有传输到我的C代码?_C#_Asp.net - Fatal编程技术网

C# 为什么我的一个aspx文本框值没有传输到我的C代码?

C# 为什么我的一个aspx文本框值没有传输到我的C代码?,c#,asp.net,C#,Asp.net,我有一个ASPX网络表单,它接收一些数据并发送一封电子邮件。它已经运行了多年,但我只是添加了一个新字段,无法将文本值传输到编写电子邮件的c#代码 不同之处在于,新字段是通过jQuery/JSON查找填充的,并且是只读的。jQuery部分工作正常 有问题的文本框: <asp:TextBox ID="autoRegion" Width="30" ReadOnly="true" onfocus="this.blur();" TabIndex="-1" CssClass="disabledInpu

我有一个ASPX网络表单,它接收一些数据并发送一封电子邮件。它已经运行了多年,但我只是添加了一个新字段,无法将文本值传输到编写电子邮件的c#代码

不同之处在于,新字段是通过jQuery/JSON查找填充的,并且是只读的。jQuery部分工作正常

有问题的文本框:

<asp:TextBox ID="autoRegion" Width="30" ReadOnly="true" onfocus="this.blur();" TabIndex="-1" CssClass="disabledInput" Value="" runat="server" />    

工作文本框:

<asp:TextBox ID="FName" MaxLength="40" TabIndex="1" runat="server" />
<asp:TextBox ID="LName" MaxLength="40" TabIndex="3" runat="server" />

电子邮件正文内容的C#变量:

objMM.Body += "<table><tr><td>" + 
     LName.Text + "</td><td>" + FName.Text.ToUpper() + "</td><td>" +
     streetAddress1.Text + "</td><td>" + city.Text.ToUpper() + "</td><td>" +
     state.SelectedItem.Text + "</td><td>" + zip.Text + "</td><td>" + autoRegion.Text +
     "</td></tr></table>";
objMM.Body+=“”
LName.Text+“”+FName.Text.ToUpper()+“”+
streetAddress1.Text+“”+city.Text.ToUpper()+“”+
state.SelectedItem.Text+“”+zip.Text+“”+autoRegion.Text+
"";
所有其他字段都在工作,但
自动注册。Text
不工作

我还尝试用
Request.Form[“autoRegion”]
填充一个变量,并用该变量代替
autoRegion.Text
,但这也不起作用


任何帮助都将不胜感激。

如果我没记错的话,只读项的值不会发布回服务器,因为它们无法更改,因此没有任何理由。

请查看此链接:。回发似乎只为禁用或只读的文本框推送ViewState数据。因为您是通过客户端加载值的,所以文本框的ViewState中没有任何内容

有几种不同的解决方法,但我会尝试回答这个问题:


除了应用此代码外,您还需要从aspx页面的文本框中删除ReadOnly=“true”属性。

Mark Fitzpatrick是正确的,问题是您将该文本框设置为只读,这意味着其值不会在ViewState中保留

以下是一个潜在的解决方法:


编辑:您也应该做一些更改

  • 删除文本框中的只读属性,如下所示

  • 此属性可在页面加载时添加,如下所示 受保护的无效页面加载(对象发送方、事件参数e) { 添加(“只读”、“只读”); }
  • 可能重复的
    protected void Page_Load(object sender, EventArgs e)
    {
        TextBox1.Attributes.Add("readonly", "readonly");
    }