C# 为什么我的一个aspx文本框值没有传输到我的C代码?
我有一个ASPX网络表单,它接收一些数据并发送一封电子邮件。它已经运行了多年,但我只是添加了一个新字段,无法将文本值传输到编写电子邮件的c#代码 不同之处在于,新字段是通过jQuery/JSON查找填充的,并且是只读的。jQuery部分工作正常 有问题的文本框: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
<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中保留 以下是一个潜在的解决方法:
编辑:您也应该做一些更改
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add("readonly", "readonly");
}