0

ユーザーが外部 API を使用してサーバーにログオンする必要がある ASP.NET アプリケーションを作成しています。ユーザーが無効なログイン資格情報を入力した場合、Ajax を使用してユーザーに即座にフィードバックを提供したいと考えています。

私の見解

@using (Ajax.BeginForm("Login", "Login", null, new { id = "login-form" }))
        { 
            <label>
                User Name: @Html.TextBox("userName", "", new { @class = "input" })
            </label>
            <label>
                Password: @Html.Password("password", "", new { @class = "input" })
            </label>
            <input type="submit" class="button" value="Login" />
            <div id="login-validate">Invalid Login!</div>
        }

私のコントローラー

    public ActionResult Login(string userName, string password)
    {
        // Returns true if connection is valid
        if (RepoConnection.verifyAndBindConn(userName, password))
        {
            return Index(); // Redirect to home page, logged in as new user
        }
        else
        {
            return null; // TODO: Don't change view
        }
    }

コントローラがビューを切り替えず、代わりに jQuery 関数を呼び出してエラー メッセージを表示する方法はありますか?

4

1 に答える 1

1

View()あなたのelseブロックに戻るだけです。ログインページが再表示されます。

    if (RepoConnection.verifyAndBindConn(userName, password))
    {
        return Index(); // Redirect to home page, logged in as new user
    }
    else
    {
        return View(); // TODO: Don't change view
    }

本当に ajaxy にしたい場合は、コードを変更して、フォーム/送信ボタンを使用せずに ajax 経由でログイン資格情報を送信し、セッション cookie を作成し、js コードでリダイレクトを処理する必要があります。

于 2012-06-05T20:23:25.623 に答える