我正在尝试验证给定字符串的用户输入。我可以使用此代码在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>
如果我能解决这个问题的任何想法将不胜感激。感谢
答案 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();