2014-10-28 19 views
-1

我们有一个网页有一个asp.net文本框:ASP/C#如何检索文本框的值

<asp:Label runat="server" AssociatedControlID="username">Username: </asp:Label> 
<asp:TextBox runat="server" ID="username" Width="300px" AutoCompleteType="None" /> 
<asp:RequiredFieldValidator runat="server" ControlToValidate="username" ErrorMessage="*" ForeColor="Red" /> 

我也有这片下面的代码页:

<% 
    String s = Request.Form["username"]; 
    Response.Write(s); 
%> 

但问题是它不会打印价值。 在任一页上都没有显示错误代码。

我错过了什么?

+0

你如何转到下一页?字段不会自动结转。 – 2014-10-28 15:32:26

+1

不必担心,表单通过提交按钮提交。 – discuss 2014-10-28 15:34:18

+3

不要编写这样的代码,除非你使用的是经典的ASP。 – 2014-10-28 15:36:30

回答

3

WebForms的使用意图与预期不同。如果页面上的所有内容都“正确连接”,那么您应该能够以这种方式获取文本框的值。

<script runat="server"> 
    void Page_Load(Object sender, EventArgs e) { 
    if (Page.IsPostBack) { 
     string s = username.Text; 
     Response.Write(s); 
    } 
    } 
</script> 

通常情况下,你会在你想充当形式提交按钮按钮的Click事件处理程序做到这一点。无论点击哪个按钮,以上都会起作用。

+0

这没有奏效。带我到未经授权的页面。 – discuss 2014-10-28 15:37:53

+0

尝试将代码包装在服务器端脚本标记中并捕获页面加载事件。我已经更新了答案来展示这一点。 – ventaur 2014-10-28 15:45:51

+0

谷歌搜索如何在C#.net中使用'<% %>'以及'discuss' – MethodMan 2014-10-28 15:48:20

1

排序出我自己的问题。我错误地使用了“并且需要重新组织代码。