3

コントローラーにログアウト アクションを設定したいと考えています。新しいページを表示したくありません。コントローラーにメッセージを送信したいだけです。これが私が考えていたことです。

しかし、いくつか質問があります。

a) 「get」または「post」のいずれかにする必要があります b) ブラウザの内容を完全にクリアするには、新しいページにもリダイレクトする必要がありますか?

    [HttpPost]
    public JsonResult JsonLogout()
    {
        FormsAuthentication.SignOut();
        return Json(new { success = true });
    }
4

1 に答える 1

3

アクションにHttpPost属性が付加されているため、POSTを使用してajaxリクエストも送信する必要があります。この属性を削除すると、POSTとGETの両方を使用できるようになり、このアプリケーションでは両方が正常に機能します。

このアクションはいつでもページを更新せずに送信できますが、ajaxリクエストを送信するだけでページを変更しない場合は、ユーザーに次のようなフィードバックがないことを考慮する必要があります。実際にはログアウトされています。メッセージをポップアップすることはできますが、ページの他の要素は引き続き表示されます。彼らが受け取る唯一のフィードバックは、彼らが別のリンクをクリックして、それが彼らに再度ログインするように求めていることに気付いたときです。

編集:また、これに関する私のフィードバックは、ajaxをまったく使用しないことです。クリーンで認証されていないインターフェースを確保するために、ページをリロードする方がはるかに良いでしょう。

幸運を!

于 2012-04-21T18:10:44.707 に答える