我有以下html:
<html>
<body>
<form runat="server">
Name: <input type="text" name="name" />
<br />
<input type="submit" name="submit" />
</form>
</body>
</html>
如何检索回发到Web服务器的“名称”文本框中的值以在ASP.NET WebForms中进行操作?
(我知道ASP.NET内置控件及其可能性,但我正在寻找一种“干净”的解决方案而不使用内置的ASP.NET控件)
答案 0 :(得分:14)
如果您不能或不想使用asp.net文本框,那么您可以检索常规html文本框的名称,如下所示:
string nameTextPosted = Request.Form["name"];
请注意,以这种方式创建的文本框不会自动将它们的值保留在像asp.net文本框这样的回发中。
答案 1 :(得分:2)
最简单的解决方案是将其转换为服务器端组件并通过它的名称访问它。 e.g。
<asp:TextBox Id="Name" runat="server"></asp:TextBox>
...
string name = Name.Text;
除非你有其他理由不使用某个组件,否则你只会让事情变得更加困难。
答案 2 :(得分:1)
ASP.net包含Html服务器控件,以便向后兼容,就像你喜欢html的人一样。通过添加runat =“server”和id属性来制作html标签服务器控件,并且您可以使用其id在服务器端代码中访问它们。
<form runat="server">
Name: <input type="text" name="name" id="name" runat="server" />
<br />
<input type="submit" name="submit" id="name1" runat="server" />
</form>
此后,您可以控制他们的行为:
name.Value="Hellow World !"
答案 3 :(得分:0)
你必须添加id和runat =&#34; server&#34;在每个控制中。像这样:
<input type="text" name="name" id="name" runat="server" />
最好使用asp:TextBox,如下所示:
<asp:TextBox ID="name" runat="server"></asp:TextBox>