错误信息不显示

本文关键字:显示 信息 错误 | 更新日期: 2023-09-27 18:06:15

我正在尝试在用户名和密码未被识别时显示错误消息。

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值的Request.QueryString[]Request[]

if (Request.QueryString.Count > 0)
{
    err = Request.QueryString["err"];
}

if (Request.Count > 0)
{
    err = Request["err"];
}

此外,查询字符串值属于登录页面,因此您将无法从_Default访问它。将Page_Load逻辑移动到Login.aspx.cs.

一般来说,根据类名_Default,我相信您已经将此代码放置在Default.aspx页面中。将Login.aspx页面的代码放在Load中。然后也按照jrumell提供的方向。