从文本框c#验证用户输入

时间:2015-05-31 20:51:15

标签: java c# asp.net

我正在尝试验证给定字符串的用户输入。我可以使用此代码在java中执行此操作

        String username = request.getParameter("txtUsername");
        String password = request.getParameter("txtPassword"];)

   if (username.equals("john") && (password.equals("smith"))){

        out.println("Success");

    }
    else{

         out.println("validation failed");
     }

但它使用相同的代码在C#中返回NullReferenceException。

       {

    }

    protected void btnLogin_Click(object sender, EventArgs e)
    {
        String username = Request.QueryString["txtUsername"] ?? "";
        String password = Request.QueryString["txtPassword"] ?? "";

        try {
        if(username.Equals("john") && (password.Equals("smith"))){

            lblLogin.Text = "Success";
            Response.Redirect("ModelProfile.aspx");
        }
        else

        {
            lblLogin.Text = "Failed";
             Response.Redirect("Login.aspx");
        }

        }
        catch
        {
            lblLogin.Text = "Please type in some valid credentials";

        }

    }

以下是aspx页面中的文本框:

            <div id="loginUsername">
                <asp:Label ID="lblUsername" runat="server" Text="Username:"></asp:Label>

                <asp:TextBox ID="txtUsername" runat="server"   CssClass="mytext"></asp:TextBox>
            </div>

        <div id="loginPassword">
            <asp:Label ID="lblPassword" runat="server" Text="Password:"></asp:Label>
            <asp:TextBox ID="txtPassword" runat="server" CssClass="mytext"></asp:TextBox>

        </div>
        <div id="loginButton">

            <asp:Button ID="btnLogin" runat="server" Text="Login" CssClass="button" OnClick="btnLogin_Click" />
            <asp:Label ID="lblLogin" runat="server" Text=""></asp:Label>

        </div>
    </div>

如果我能解决这个问题的任何想法将不胜感激。感谢

1 个答案:

答案 0 :(得分:2)

您可以使用

轻松解决问题
    String username = Request.QueryString["txtUsername"] ?? "";
    String password = Request.QueryString["txtPassword"] ?? "";

??是C# Null Coalescing operator

然而,查看您的代码,似乎您不必使用QueryString,因为按钮登录位于文本框的同一页面上。如果这是正确的,那么您应该直接引用文本框。无需检查null,因为textbox文本属性永远不为null(如果你真的想要非常精确,你可以添加一个Trim)

    String username = txtUsername.Text.Trim();
    String password = txtPassword.Text.Trim();