1

ユーザー名とパスワードが認識されない場合にエラー メッセージを表示しようとしています。

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

これはなぜですか?本当にありがとうございました!

4

2 に答える 2

2

これはクエリ文字列の GET 値であり、フォームの POST 値ではありません。POST 値と GET 値を含むRequest.QueryString[]orを使用できます。Request[]

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

また

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

また、クエリ文字列の値はログイン ページに属しているため、 からアクセスすることはできません_DefaultPage_Loadロジックを Login.aspx.cs に移動します。

于 2013-03-27T20:16:55.247 に答える
0

一般的に言えば、クラス名に基づいて、_DefaultこのコードをDefault.aspxページに配置したと思います。ページの にコードを配置しLoadますLogin.aspx。そして、jrummell の指示に従ってください。

于 2013-03-27T20:19:02.400 に答える