C# 错误消息未显示
我试图在无法识别用户名和密码时显示错误消息C# 错误消息未显示,c#,web,C#,Web,我试图在无法识别用户名和密码时显示错误消息 if (rdr.Read()) { int id = int.Parse(rdr.GetValue(0).ToString()); string fname = rdr.GetString(1); Session["ID"] = id; Session["FName"] = fname; con.Close(); Response.Redirect("Home.aspx"); } else {
if (rdr.Read())
{
int id = int.Parse(rdr.GetValue(0).ToString());
string fname = rdr.GetString(1);
Session["ID"] = id;
Session["FName"] = fname;
con.Close();
Response.Redirect("Home.aspx");
}
else
{
Response.Redirect("Login.aspx?err='blabla'"); //Display message
}
以下代码(Page_Load)应该在else语句中调用,但不是:
public partial class _Default : System.Web.UI.Page
{
protected string err = "";
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form.Count > 0)
{
err = Request.Form["err"];
}
}
}
为什么会这样?
非常感谢大家 这是查询字符串中的GET值,而不是表单中的POST值。您可以使用包含POST和GET值的或
if (Request.QueryString.Count > 0)
{
err = Request.QueryString["err"];
}
或
此外,查询字符串值属于登录页面,因此您将无法从
\u Default
访问它。将页面\u Load
逻辑移动到Login.aspx.cs。一般来说,基于类名\u Default
,我相信您已将此代码放置在Default.aspx
页面中。将代码放入Login.aspx
页面的Load
。然后也要遵循jrummell提供的方向。我想说它没有被调用,因为你重定向到的不是这个页面,但我想我可能是错的。似乎您正在将代码放在Default.aspx
中,但它应该放在Login.aspx
中。虽然您指出了一个有效的问题,但我认为更直接的问题是代码放错了位置。
if (Request.Count > 0)
{
err = Request["err"];
}