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



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 中的空网站,而不是 Web 窗体/Web 应用程序。我手动将 html 和 C# 文件添加到项目中。我在这里错过了什么?

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

最新更新