为什么我在使用runat =" server"?时无法从代码中引用html控件?

时间:2018-01-01 07:09:17

标签: c# html asp.net webforms

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 =&#34;服务器&#34;允许这些控件对C#可见。但是,servertxt控件表示它在当前上下文中不存在。此项目使用Visual Studio中的空网站而不是webform / webapp。我手动将html和C#文件添加到项目中。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

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