如何使用asp.net内容页面访问文本框值以代码?

时间:2015-09-22 11:32:42

标签: asp.net

我的aspx文件中有一个文本框和一个按钮,我希望在单击按钮时将文本框值设置为后面的代码,我之前实现了这一点,但现在我使用asp:content pages,但现在我无法获得代码隐藏的价值

我的aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="test1.test" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<body>
<div>
<input type="text" runat="server" id="abc" />
<asp:Button 
 ID="Button1" 
 runat="server" 
 Text="Search" 
class="btn"
OnClick="Button1_Click"
/>
 </div>
</body>
</asp:Content>

我的aspx.cs

protected void Button1_Click(Object sender,
                         System.EventArgs e)
 {
        string txtboxvalue = Request.Form["abc"];
 }

但我无法点击按钮获取文本框值。

2 个答案:

答案 0 :(得分:0)

您的控件没有名称,因此它不会以您可以将其视为Request.Form["abc"]的形式进行POST。 WebForms将生成其名称,如master00$formName$abc。您可以在HTML源代码中进行检查,但在页面上添加更多控件后,每个请求可能会有所不同或更改。因此,在自动生成时不应使用此字段。

要么命名:

<input type="text" runat="server" id="abc" name="abc" />

或者,因为它是runat="server"并且有id,您只需从后面的代码中访问它:

string textBoxValue = abc.Value;

答案 1 :(得分:0)

由于您已将runat设为输入控件,

 <input type="text" runat="server" id="abc" />

您可以像这样访问

的文字值
  string txtboxvalue = abc.Value;

//这里不需要使用Request.Form,因为输入现在是服务器控件