我正在尝试在无法识别用户名和密码时显示错误消息。
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"];
}
}
}
为什么会这样? 非常感谢你们!
答案 0 :(得分:2)
这是查询字符串中的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。
答案 1 :(得分:0)
一般来说,根据班级名称_Default
,我相信您已将此代码放在Default.aspx
页面中。将代码放在Load
页面的Login.aspx
中。然后也按照jrummell提供的指示。