1

ログアウトリンクで、にあるプロセスを実行しHomeController、新しいを表示しないようにしますView。これを構造化するにはどうすればよいですか?

コントローラ方式:

public ActionResult LogoutProcess()
    {
        previousLoggedIn = WebSecurity.CurrentUserName;
        WebSecurity.Logout();
        return RedirectToAction("Logout", "Home");
    }

    public ActionResult Logout(HomeModels.LogoutModel model)
    {
        model.PreviouslyLoggedInUsername = previousLoggedIn;
        return View(model);
    }

意見:

<a href = "@Url.Action("LogoutProcess", "Home")">Logout</a>
4

3 に答える 3

1

そのアクションをターゲットにして、標準のリンクを使用できます

@Url.Action("LogoutProcess", "Home")

「トリック」は、アクションの最後にある他のビューへのリダイレクトにあります。LogoutProcess()

public ActionResult LogoutProcess()
{
    // TempData to transfer user name      
    TempData["previousLoggedIn"] = WebSecurity.CurrentUserName;
    WebSecurity.Logout();
    return RedirectToAction("Logout", "Home");
}

public ActionResult Logout(HomeModels.LogoutModel model)
{
    // fill model from TempData
    model.PreviouslyLoggedInUsername = TempData["previousLoggedIn"];
    return View(model);
}

を介して他のCurrentUserNameアクションに渡されますTempData

于 2013-01-14T10:06:03.773 に答える
0

コンテンツなしの http ステータス コードの結果を考慮しましたか?

return new HttpStatusCodeResult(HttpStatusCode.NoContent);
于 2013-01-14T10:13:16.890 に答える
0

これを試して:

public ActionResult LogoutProcess()
{
    WebSecurity.Logout();
    //return null;
    Return RedirectToAction("Index");//or whatever page you want to display after logout.
}
于 2013-01-14T10:06:17.610 に答える