单击按钮时未填充 Runat 服务器字段



我正在使用一个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 设置为值会导致 a 中的空字符串,无论我在页面上键入什么,我都单击保存按钮。

我在这里忽略了什么吗?

你应该像这样添加带有名称标签标签的标签字段在aspx页面中显示

 <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(); 
}

我可以找出几个错误:

  • 你说一些关于Page_Load的事情。您应该始终记住Page_Load在每次回发时执行。因此,如果您在Page_Load的文本框中写入某些内容,它将删除用户键入的值。您可以通过验证来更改此行为

    if(!IsPostBack) { // Your code }

围绕您的Page_Load内容。

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

  • 您不对"a"字符串执行任何操作,无论 Password 字段是否正确发布,您当前的代码示例都不执行任何操作。您可以按照 Ravi 在他的答案中的建议进行操作来显示它。

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

最新更新