私はこれを理解しようとしてインターネットのいたるところにいました。ユーザーをログインするアクションを呼び出し、ログインに成功するとユーザーをプロファイルページにリダイレクトするjqueryダイアログウィンドウを追加しようとしています。この時点まで、ログイン部分は機能しているように見えますが、アクションが戻ると、ユーザーは同じページに留まります。ログインの成功を判断して適切にリダイレクトするには、どのような変更を加える必要がありますか? これが私のコードです:
"Javascript code"
$.validator.unobtrusive.parse('#LogOnForm');
$('#LogOnDialog').dialog({
autoOpen: false, width: 450, height: 300, modal: true,
buttons: {
'Log On': function () {
if ($('#LogOnForm').validate().form()){
$.ajax({
url: '@Url.Action("LogOnPartial", "Account")',
type: 'POST',
data: $('form').serialize(),
datatype: 'json',
success: function (result) {
$('#LogOnDialog').html(result).dialog('open');
}
});
}
},
Cancel: function () {
$(this).dialog('close');
}
}
});
$('#linkSignIn').live('click', function () {
$('#LogOnDialog').html('')
.dialog('option', 'title', 'Sign In')
.load('@Url.Action("LogOnPartial", "Account")', function () { $('#LogOnDialog').dialog('open'); });
});
"Controller Action"
[HttpPost]
public ActionResult LogOnPartial(LogOnModel model)
{
if (ModelState.IsValid)
{
UserPrincipal principal = new UserPrincipal(model.EmailAddress, model.Password);
HttpContext.User = principal;
FormsAuthentication.SetAuthCookie(model.EmailAddress, true);
return PartialView("LogOnPartial", model);
}
return PartialView("LogOnPartial", model);
}