0

HomeController が Index ActionResults で開始するとき、値 1 のセッションを設定します

Session["login_fail"] = 1;

ユーザーがログインしようとすると、sessio 変数が 0 に変更されます (失敗した場合)。

Session["login_fail"] = 0;

そして、それが失敗した場合、ここで何が起こるべきか

  @using(Html.BeginForm()) {
        <fieldset>
            <legend>Tbl_Users</legend>

    <table>
        <tr>
            <td>User Name</td>
            <td><input type="text" id="username" name="userName" /></td>
            <td id="ErrorMessage"></td>
        </tr>
        <tr>
            <td>Password </td>
            <td><input type="text" id="pass" name="pass" /></td>
            <td id="ErrorMessage"></td>

        </tr>

        @{
        if(Convert.ToInt32(Session["login_fail"]) == 0) 
        {
                <p>User name or password are incorrect. Please, try again.</p>  //here should apper the error message if it fails but it doesnt
        }
      }
    </table>
            <p>
                <input type="submit" onclick="return validate()" value="Login" />
            </p>

        </fieldset>

フォームを送信すると、別のアクションは投稿の値を受け取る人であり、ユーザーとパスワードが問題ないかどうかを確認し、そうでない場合(0を返すことを確認したこと)、エラーメッセージが表示され、 LoginUser (0 または 1 を返すもの) と同じコントローラーにある Index アクション結果に返されます。

4

2 に答える 2

0

エラーが見つかりました。問題は、送信をクリックすると、投稿の値が別のアクション結果に移動し、ログインが失敗した場合にセッションの値が0になり、アクション結果を再度インデックスにリダイレクトし、何らかの理由でセッションの値が失われることでした。ViewBag を使用する場合と同様に、その値を別のビューで見ることはできません。セッションはプロジェクト全体で表示されるはずなので、なぜこれが起こるのかわかりません。しかし、それが問題だったと私はゲストに言います。

于 2013-03-26T16:10:29.440 に答える