代码之家  ›  专栏  ›  技术社区  ›  Ian

为什么在使用runat=“server”时无法从代码隐藏中引用html控件?

  •  1
  • Ian  · 技术社区  · 7 年前

    HTML:

    <tr>
        <td>
            <button type="button" id="serverbtn" name="serverbtn" runat="server" 
            OnClick="serverbtn_Click">Submit
            </button>
        </td>
        <td colspan="2">
            <input id="servertxt" name="servertxt" runat="server" />
        </td>
    </tr>
    

    代码隐藏:

    namespace WebApp
    { 
        public class ServerSide
        {        
            public void serverbtn_Click(object sender, EventArgs e)
            {
                String txt = servertxt.Value;
            }
        }
    }
    

    我是asp新手。net和一般的网站建设。我想将输入到html输入中的文本传递给C代码进行处理。据我所知,添加runat=“server”允许这些控件对C#可见。然而,servertxt控件表示它在当前上下文中不存在。此项目使用Visual Studio中的空网站,而不是webform/webapp。我手动将html和C#文件添加到项目中。我错过了什么?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Alexander    7 年前

    这个 <input> 是一个HTML标记,用于在客户端存储表单的数据。但它不是服务器控件。此外,没有 runat公司 的属性 <输入(>); 中的元素 HTML Specification . 您应该使用 <asp:TextBox> 改为服务器端控制。此外,如果要处理服务器端的按钮单击事件,则必须使用 <asp:Button> 控制而不是 <button> 要素