2011-12-14 61 views
8

我有以下的html:如何检索用于在ASP.NET WebForms中进行操作的HTML POST数据?

<html> 
    <body> 

     <form runat="server"> 
     Name: <input type="text" name="name" /> 
     <br /> 
     <input type="submit" name="submit" /> 
     </form> 

    </body> 
</html> 

如何取回回发到网络服务器中的ASP.NET WebForms的操作在“名称”文本框中的值?

(我知道内置控件,并与他们的可能性ASP.NET,但我正在寻找在不使用内置的ASP.NET控件的“干净”的解决方案)

回答

12

如果您不能或不想使用asp.net文本框,然后你可以检索常规HTML文本框像这样的名字:

string nameTextPosted = Request.Form["name"]; 

只要注意,在这种方式创建的文本框不会自动在页面返回时坚持自己的价值观像asp.net将文本框。

2

简单的解决方案将它变成一个服务器端组件并通过其名称访问它。例如

<asp:TextBox Id="Name" runat="server"></asp:TextBox> 

... 

string name = Name.Text; 

除非您有其他原因不使用组件,否则您只会让事情变得更加困难,因为没有理由。

+0

谢谢! 我知道内置的ASP.NET控件,但我正在寻找一种用“干净”HTML手动执行的方法。 – Birdman 2011-12-14 15:34:30

+0

@Alex它是干净的html。一旦它们被渲染,它们就是html文本框。 – 2011-12-14 15:35:12

0

你必须在每个控件中添加id和runat =“server”。像这样:

<input type="text" name="name" id="name" runat="server" /> 

其更好地用asp:文本框是这样的:

<asp:TextBox ID="name" runat="server"></asp:TextBox> 
1

ASP.net包含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 !" 
相关问题