Итак, я создал скрипт, который будет публиковать форму при нажатии кнопки. Форма для выхода из системы.
$scope.logout = function ($event) {
var url = 'Account/LogOff';
var tokenClone = $('input[name="__RequestVerificationToken"]').clone();
$('<form data-logout="true" action="' + logoutUrl + '" method="post"></form>').appendTo('body');
$(tokenClone).appendTo('form[data-logout="true"]');
$('form[data-logout="true"]').submit();
};
Это контроллер:
[HttpPost]
[ValidateForm()]
public ActionResult LogOff()
{
WebSecurity.Logout();
Roles.DeleteCookie();
ValidationTokenHelper.RemoveAuthCookie();
TempData["Success"] = "You have been logged out.";
return RedirectToAction("Login", "Account");
}
В режиме отладки все было нормально, а в режиме выпуска - нет. Это так странно. Сообщение в форме фактически искало действие GET
, а не POST
.