繁体   English   中英

将HTML中的textarea / textbox中的文本读取到C#代码背后。 (ASP.NET)

[英]Read text from textarea/textbox in HTML into C# codebehind. (ASP.NET)

我正在尝试使用背后的代码从提供给我的HTML中读取文本。 在研究了这个主题之后,我发现几乎所有的实例都涉及文本框的Web窗体控件(asp :),但是给出的HTML却没有,而是:

<p>
    <label>Address</label>
    <textarea class="w3-input w3-border" name="addr" cols="30" rows="4"></textarea>
</p>
<div class="w3-half w3-container">
    <p>
        <label>Phone:</label>
        <input type="text" class="w3-input"/>
</div>
<div class="w3-half w3-container">
    <label style="padding-left:10px;">Email:</label>
    <input type="text" class="w3-input"/>
</div>
</p>

我是否仍然可以从这些框中读取用户提供的文本,还是需要更改HTML?

我在代码中进行了两次失败的尝试,以提取提供的地址:

string address = ((textarea)Address.FindControl("addr")).Text;
string address = ((TextBox)Address.FindControl("addr")).Text;

更新:使用提供的解决方案中描述的服务器控件,我收到一条错误消息,指出“页面只能有一个服务器端Form标记。”

这是由于以下标记导致的:

<form runat="server">
        <asp:textbox id="addr" runat="server" textmode="multiline" />
        </form>

随后是:

<form runat="server">
            <asp:Button ID="Ship" runat="server" Text="Ship" OnClick="Ship_Click" style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue" />
            <asp:Button ID="Rate" runat="server" Text="Rate" OnClick="Rate_Click" style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue" />

            </form>

textarea与按钮位于不同的部分,我不清楚如何在没有表单标签的情况下或者在没有共享相同标签的情况下使这两种功能起作用。 谢谢

如果要访问后面的代码中的值,则需要使用服务器控件。 使用ASP TextBox并将TextMode设置为MultiLine:

<asp:TextBox ID="textarea1" runat="server" TextMode="MultiLine" />

然后在后面的代码中:

string addr = textarea1.Text;

更新以在同一页面上演示多种形式:

<form ID="form1" runat="server">
    <asp:Button ID="Ship" runat="server" Text="Ship" OnClick="Ship_Click" style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue" />
    <asp:Button ID="Rate" runat="server" Text="Rate" OnClick="Rate_Click" style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue" />
</form>

<form id="form2" action="WebForm1.aspx" method="post">
    <asp:TextBox ID="textarea1" runat="server" TextMode="MultiLine" />
</form>

从这里,对于从form1或form2发布的帖子,您可以使用任何一种方法在后面的代码中检索textarea1值...

Form1中:

string addr = textarea1.Text;

窗口2:

string addr = Request["textarea1"].ToString();

runat="server"添加到您的TEXTAREA和INPUT标记中。 然后,您可以从代码隐藏访问它们。 您还需要分配每个ID属性。

<p>
    <label>Address</label>
    <textarea class="w3-input w3-border" name="addr" id="textarea1" runat="server" cols="30" rows="4"></textarea>
</p>
<div class="w3-half w3-container">
    <p>
        <label>Phone:</label>
        <input type="text" class="w3-input" runat="server" id="input1" />
</div>
<div class="w3-half w3-container">
    <label style="padding-left:10px;">Email:</label>
    <input type="text" class="w3-input" runat="server" id="input2" />
</div>
</p>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM