C# 将HTML文本输入的值(不带runat server)从用户控件传递给代码隐藏
试图将HTML文本输入的值(不带runat=“server”)从用户控件发送到代码隐藏,我简直疯了。我得到一个没有错误的空字符串。步骤如下:C# 将HTML文本输入的值(不带runat server)从用户控件传递给代码隐藏,c#,asp.net,user-controls,C#,Asp.net,User Controls,试图将HTML文本输入的值(不带runat=“server”)从用户控件发送到代码隐藏,我简直疯了。我得到一个没有错误的空字符串。步骤如下: 用户单击ID=“name\u btn”的ImageButton 该值必须传递给代码隐藏。我正在测试是否通过使用页面加载(if(IsPostBack))和按钮单击函数传递了该值,但这两个函数中仍然没有值 请注意,由于其他原因,我不希望文本输入在服务器上运行,因此我不希望添加runat=“server”。需要帮忙吗 用户控制页(name.ascx) 母版页 &
<uc:name runat="server" ID="UCname" />
您可以通过两种方式使用javascript将值传递给codebehind。 1.单击图像按钮调用javascript。 在_EVENTARGUMENT中设置文本框值并调用_doPostback()。在pageload中,您可以检查事件参数中的值
我可以想象,你所做的与你所做的有点冲突。例如,在服务器上,您使用Request.Form[“”]获取html输入元素,但您是通过id属性请求它的。表单支持按索引和名称查找元素
那么您是否尝试过向html输入元素添加name=“” 您应该向输入标记添加名称属性,例如:
<input type="text" id="name" name="name"/>
Request.Form(element)[(index)|.Count]
参数:
元素
集合要从中检索值的表单元素的名称
索引
一个可选参数,允许您访问一个参数的多个值之一。它可以是从1到Request.Form(parameter).Count范围内的任何整数。如果您没有选择将textbox设置为服务器控件,您将永远不会收到codebehind中textbox的值。但如果您正在为您的按钮发回邮件,则不会收到textbox的值。。。。我认为这个请求是理所当然的。表单像大多数asp.net控件一样查找ID,但我忽略了一个事实,那就是它只是一个简单的HTML输入。。。。谢谢
<uc:name runat="server" ID="UCname" />
<input type="text" id="name" name="name"/>
if (IsPostBack)
{
nameBox = Request.Form["name"];
Response.Write("Name: " + nameBox);
}