我的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"];
}
但我无法点击按钮获取文本框值。
答案 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,因为输入现在是服务器控件