2015-05-31 28 views
0

我想驗證給定字符串的用戶輸入。我能用java代碼執行此操作從文本框c驗證用戶輸入#

 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> 

請我如何能解決這個可以理解的任何想法。由於

+0

是'username'或'password'是最有可能無效,作爲一個'Request.QueryString'的結果未能成功找到匹配項。在步驟中放置一個斷點 - 您將能夠看到它失敗的位置。 – Baldrick

+0

@Baldrick我做了,它說用戶名爲空。這顯然不是空,因爲我總是輸入一個值 – Buzz

+0

我會檢查'「txtUsername」'的大小寫。這是否完全匹配請求字符串外殼? – Baldrick

回答

2

你可以很容易地修復與

String username = Request.QueryString["txtUsername"] ?? ""; 
    String password = Request.QueryString["txtPassword"] ?? ""; 

的你的問題?是C# Null Coalescing operator

但看着你的代碼,似乎你不必使用QueryString,因爲按鈕登錄是在你的文本框的同一頁。如果這是正確的,那麼你應該直接引用文本框。無需檢查null,因爲文本框的文本屬性永遠不會是零(如果你真的要非常精確,你可以添加一個微調)

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

這將肯定治療症狀,但在他的情況下,他實際上有一個提供的用戶名和密碼... :) – Baldrick

+0

然後,他有其代碼的其他部分是錯誤的。唯一想到的是一個拼寫錯誤的名字 – Steve

+0

我的錢會被套上錯了 – Baldrick