我正在寫一個帳戶管理控制器,並有單獨處理自己的用戶帳戶的刪除:清除Request.IsAuthenticated值後SignOut()不RedirectToAction()
[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Delete(string userName, string confirmButton)
{
MembershipService.DeleteUser(userName);
if (User.Identity.Name.Equals(userName,
StringComparison.InvariantCultureIgnoreCase))
{
FormsAuth.SignOut();
return View("DeleteSelf");
}
else
return RedirectToAction("Index");
}
但局部視圖LogOnUserControl.ascx仍顯示只是在顯示DeleteSelf視圖時註銷用戶名,因爲Request.IsAuthenticated和Page.User.Identity值仍在FormsAuth.SignOut()後設置。
添加一個新的動作ShowDeleteSelfMessage可以解決這個問題,但我不喜歡這樣的解決方案:
...
{
FormsAuth.SignOut();
return RedirectToAction("ShowDeleteSelfMessage");
}
...
public ActionResult ShowDeleteSelfMessage()
{
return View("DeleteSelf");
}
任何其他的想法?謝謝!
我想和學到了什麼不幸的是,這相當於RedirectToAction(「DeleteSelf 「) –
和你的OP沒什麼不同,它是return View(」DeleteSelf「)? –
不幸的是一樣的。但我認爲現在加入單獨行動來表現觀點是常見模式。 –