单击按钮时未填写runat服务器字段?

时间:2019-04-19 09:42:43

标签: asp.net

我将aspx文件用作主页,其中包含以下代码段:

  <input type="text" runat="server" id="Password" />
    <asp:Button runat="server" id="SavePassword" 
            Text="Save" OnClick="SavePassword_Click"/>

然后在我使用的代码后面:

protected void SavePassword_Click(object sender, EventArgs e)
{
    string a = Password.Value.ToString();
}

在Page_Load中设置Password.Value可以按预期工作,但是无论我在页面上键入什么内容,都将a设置为该值都会导致一个空字符串。

我在这里俯瞰着什么吗?

2 个答案:

答案 0 :(得分:0)

您应该像这样在aspx页面中添加名称为labelShow的标签字段

 <asp:Label ID="labelShow" runat="server"></asp:Label>

然后将字符串添加到.cs文件

protected void SavePassword_Click(object sender, EventArgs e)
{
    string a = Password.Value.ToString();
    labelShow.Text = a.ToString(); 
}

答案 1 :(得分:0)

我可以找出几个错误:

  • 您说的是有关Page_Load的内容。您应该始终记住,每次回发都将执行Page_Load。因此,如果您在Page_Load的文本框中写入内容,它将删除用户键入的值。您可以通过验证

    来更改此行为

    if(!IsPostBack) { // Your code }

围绕您的Page_Load内容。

  • input runat="server"不是在ASP.Net中执行TextBox的正确方法,在大多数情况下,您应该使用asp:TextBox

  • 无论您是否正确张贴了“密码”字段,您都不会对“ a”字符串执行任何操作,当前代码示例不执行任何操作。您可以按照拉维(Ravi)在其答案中的建议进行显示。

我建议您学习如何使用VS调试器,并阅读有关ASP.Net Webforms的很好的课程来学习它。