![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.10.2009
Сообщений: 37
|
![]()
Добрый день или ночь или вечер или утро.
Столкнулся с интересной проблемой, есть частичное представление с аяксовой формой для ввода логина и пароля. Аяксовая потому что некоторый контент доступен и без аутентификации, и что бы не перегружать страницу полностью было принято сделать ее аяксовой. Но всегда есть 'но', после того как логин и пароль подходят, нужно сделать редирект на дргой контроллер и экшн, а возвращается мне вся страница с и контент страницы на которую должно перейти вставлен в тот контейнер который указан в UpdateTargetId. Вопрос собственно такой как сделать редирект на другую страницу из аяксовой формы которая делает реплейс? Код формы: @using (Ajax.BeginForm("Login", "Main", new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "sidebar", InsertionMode = InsertionMode.Replace })) {...} Код action: [HttpPost] public ActionResult Login(LoginModel model) { if (ModelState.IsValid) { LoginService loginServ = new LoginService(System.Web.Configurati on.WebConfigurationManager.Connecti onStrings["AMConnectionString"].ConnectionString); switch (loginServ.Authenticate(model)) { // case 1: для администратора направлять на админскую часть. case 2:{ return RedirectToAction("Test","Main"); } default: { return PartialView(model); } } } else { return PartialView(model); } } |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 19.10.2009
Сообщений: 37
|
![]()
Решение оказалось очень простое.
В Action нужно изменить returnRedirectToAction("Test","Main "); на return Json(new { success = true, message = "", redirectUrl = Url.Action("Test", "Main") }); а в представлении @using (Ajax.BeginForm("Login", "Main", new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "sidebar", InsertionMode = InsertionMode.Replace, OnSuccess = "loginSuccess" })) {...} <script type="text/javascript"> function loginSuccess(data) { if (data.success) { window.location = data.redirectUrl; } } </script> Последний раз редактировалось H'orn; 08.06.2012 в 13:39. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Google Redirect | dasonets | Безопасность, Шифрование | 5 | 25.04.2012 12:35 |
Не работает Ajax при проверке формы! | you-rick | JavaScript, Ajax | 1 | 03.07.2011 22:04 |
mysql error redirect | Ghennadiy | PHP | 6 | 22.02.2011 20:42 |