【问题标题】:How do I reference the input of an HTML <textarea> control in codebehind?如何在代码隐藏中引用 HTML <textarea> 控件的输入?
【发布时间】: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); 
} 

【问题讨论】:

    标签: c# html asp.net


    【解决方案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 元素一起使用,然后在代码隐藏中使用它。

        【讨论】:

          猜你喜欢
          • 2014-02-12
          • 2015-06-16
          • 2018-04-16
          • 1970-01-01
          • 2014-10-29
          • 2015-09-18
          • 2013-07-16
          • 2017-06-27
          • 1970-01-01
          相关资源
          最近更新 更多