我已经创建了登录页面,用户可以登录。不,我希望用户注销。在索引页面呼叫操作结果注销
我有这个在我的AccountController:
public ActionResult LogOff()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}
但我怎么能称之为的ActionResult在我的索引页?
我已经创建了登录页面,用户可以登录。不,我希望用户注销。在索引页面呼叫操作结果注销
我有这个在我的AccountController:
public ActionResult LogOff()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}
但我怎么能称之为的ActionResult在我的索引页?
有几个不同的方式,你可以做这
从视图
@Html.ActionLink("Log Out", "LogOff", "Account")
或
<a href="@Html.Action("LogOff", "Account")">Log Out</a>
或
<a href="@Url.Content("~/Account/LogOff")">Log Out</a>
我不建议的最后一个但是,因为它没有考虑到行动和控制器路由。我只在这里列入它作为最后的选择。
从另一个动作
您也可以直接从代码中调用的动作,就像您的任何普通类的方法,如果你需要做到这一点。像这样:
class ActionController : Controller
{
// ...
public ActionResult AnotherAction()
{
// Do stuff here
return LogOff(); // You don't have to return the results if they're not needed
}
// ...
}
这样你可以调用这个ActionResult的
<a href="@Href("~/Account/LogOff")">Logout</a>
保持一个断点在你注销等动作在您的账户控制器和看发生了什么事..
其最好的做法作出注销方法POST方法,所以我建议使用这种形式:
<form method='post'>
<button type='submit'>LogOff</button>
</form>
[HttpPost]
public ActionResult Logoff()
{
//Do LogOff Stuff.
}