C# 将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) 母版页 &

试图将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中,您可以检查事件参数中的值

  • 通过javascript,您可以使用PageMethods直接调用服务器中的函数。这里的函数必须是WebMethod

  • 我可以想象,你所做的与你所做的有点冲突。例如,在服务器上,您使用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);
     }