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"];
}