1
我一直在試圖找出這一個互聯網。我正在嘗試添加一個jQuery對話框窗口,該窗口將調用一個操作來登錄一個用戶,然後在成功登錄後,將用戶重定向到他們的配置文件頁面,否則保持對話框窗口打開並用相應的錯誤消息提示用戶。到目前爲止,登錄部分似乎可以工作,但當操作返回時,它將用戶保持在同一頁面上。我需要做出什麼改變才能確定一個成功的登錄和適當的重定向?這裏是我的代碼:ajax成功登錄後重定向
"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);
}
我應該我的行動看起來像兩個方案之間進行區分? – user1790300
你需要使用ajax action/json return –
從我上面的動作來判斷,我應該返回這個,不管ModelState.Valid是true還是false?如果它是假的,我希望用戶看到模式面板上有一些錯誤消息,讓他們知道他們做錯了什麼,無效的用戶/合格組合等,否則執行重定向。 – user1790300