jquery UIダイアログに入力された資格情報を使用してログインするためにajax呼び出しを試みています。asp.net mvc4 ajax login:RedirectToActionが動作しない
ajaxコールでは、ユーザーが正しくログに記録され、リターンRedirectToAction( "Index"、 "Home")コールに成功します。しかし、ユーザーはすぐにはログインしていないことがわかります。_LoginPartialステータスバーのページを更新して、Register/LoginからUsername/Logoutに切り替える必要があります。
私はRedirectToAction( "Index"、 "Home")呼び出しがページを更新すると思います。 RedirectToAction( "Index"、 "Some other page")に切り替えようとしましたが、指定されたアクションメソッドを実行してもそのページにリダイレクトされません。ここで
は、AJAX呼び出しです:
$.ajax({
url: "/Account/Login",
type: "POST",
data: JSON.stringify($('#loginForm').serializeObject()),
dataType: 'json',
contentType: "application/json; charset=utf-8",
complete: function() {
$('.dialogContainer').dialog("close");
}
});
コントローラ:Ajax呼び出しを行うとき
[HttpPost]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}