如何在代码隐藏中引用 HTML <textarea> 控件的输入?
Posted
技术标签:
【中文标题】如何在代码隐藏中引用 HTML <textarea> 控件的输入?【英文标题】:How do I reference the input of an HTML <textarea> control in codebehind? 【发布时间】:2011-05-29 07:51:08 【问题描述】:我正在使用 textarea 控件来允许用户输入文本,然后将该文本放入电子邮件正文中。在后面的代码中,引用用户输入的语法是什么?我以为我可以只使用message.Body = test123.Text;
,但这无法识别。
html:
<textarea id="TextArea1" cols="20" rows="2" ></textarea>
代码隐藏:
foreach (string recipient in recipients)
var message = new System.Net.Mail.MailMessage("sender@example.com", recipient);
message.Subject = "Hello World!";
message.Body = test123.Text;
client.Send(message);
【问题讨论】:
【参考方案1】:缺少属性runat="server"
或在代码中使用Request.Params["TextArea1"]
【讨论】:
【参考方案2】:首先确保您的textarea
标记中有runat="server"
属性,如下所示
<textarea id="TextArea1" cols="20" rows="2" runat="server"></textarea>
然后您可以通过以下方式访问内容:
string body = TextArea1.value;
【讨论】:
【参考方案3】:您的文本区域没有使用 .NET 控件。将 runat="server"
添加到 HTML TextArea 控件或使用 .NET 控件:
试试这个:
<asp:TextBox id="TextArea1" TextMode="multiline" Columns="50" Rows="5" runat="server" />
然后在你的代码隐藏中引用它:
message.Body = TextArea1.Text;
【讨论】:
tentonipete 对我来说是最好的答案,但我会添加 Columns 和 Rows 属性。例如,Columns="40" Rows="5"。【参考方案4】:您应该引用 textarea ID 并将runat="server"
属性包含到textarea
message.Body = TextArea1.Text;
test123
是什么?
【讨论】:
这仍然不起作用,因为 runat="server" 不在 html 控件上【参考方案5】:你需要像这样使用runat="server"
:
<textarea id="TextArea1" cols="20" rows="2" runat="server"></textarea>
您可以将 runat=server 属性与任何标准 HTML 元素一起使用,然后在代码隐藏中使用它。
【讨论】:
以上是关于如何在代码隐藏中引用 HTML <textarea> 控件的输入?的主要内容,如果未能解决你的问题,请参考以下文章