Как перенаправить на просмотр $ .AJAX завершено - asp.net mvc 3 - PullRequest
0 голосов
/ 04 сентября 2011

Хорошо. Я хочу перенаправить пользователя после проверки правильности, используя $ .AJAX, в периткулярное представление ... как мне это сделать? .. просьба помочь ...

вот мой код $ .AJAX ... EX: я хочу, чтобы пользователь перенаправлялся на действие контроллера "/ Home / Movies" ...

если вы не авторизованы, оставайтесь на той же странице ...

<script type="text/javascript">
    $('#btnLogin').click(function () {
        var email = $('#Email').val();
        var Password = $('#Password').val();
        var postdata =
        {
            "Email": email,
            "Password": Password
        };

        $('.Loading').fadeIn(50);
        $.ajax({
            url: '@Url.Action("CheckLogin","Home")',
            data: postdata,
            success: function (msg) {
                var data = msg.split(':');
                $('#Result').html(data[0]);
                $('.Loading').fadeOut(50);
             },
            error: function (data) {

                $('#Result').html(data);
                $('.Loading').fadeOut(50);
            }
        });
    });
</script>

вот действие моего контроллера, которое используется для проверки деталей входа в систему ...

 public ContentResult CheckLogin(Users checkuser)
        {
            if (db.CheckUserLoginDetails(checkuser.Email, checkuser.Password))
            {
                return Content("Login Successful:" + checkuser.Email);
            }
            else
            {
                return Content("Login UnSuccessful");
            }
        }

также, как я могу передать возвращенные результаты из этого представления в другое представление ... в этом примере, если пользователь вошел в систему, я хочу показать его адрес электронной почты на перенаправленной странице, которая скажет «/ home / Movies»

спасибо заранее

Ответы [ 3 ]

2 голосов
/ 04 сентября 2011

Показывает изображение загрузки перед запросом ajax и скрывает обработчики success или error.

добавить <div class="loading">Loading...</div> к вашей разметке

$('.loading').fadeIn(50);
$.ajax({
    url: '@Url.Action("CheckLogin","Home")',
    data: postdata,
    success: function (msg) {
        $('#Result').html(msg);
        $('.loading').fadeOut(50);
    },
    error: function (data) {
        $('#Result').html(msg);
        $('.loading').fadeOut(50);
    }
});
1 голос
/ 04 сентября 2011

используйте beforSend и полные атрибуты.

$.ajax({
        url: '@Url.Action("CheckLogin","Home")',
        data: postdata,
        success: function (msg) {
            $('#Result').html(msg);
        },
        error: function (data) {
            $('#Result').html(msg);
        },
        beforeSend: function() {
            $("body").append("<div class=\"ajaxLoader\" id=\"ajaxLoader"\"><div class=\"ajaxAnimation\"></div></div>");
            $("#ajaxLoader").hide();
            $("#ajaxLoader").fadeIn('fast');
        },
        complete: function() {
        $("#ajaxLoader").remove();
    }

   });

И указать анимацию с помощью CSS

.ajaxAnimation {
    background-image: url('images/ajax-loader.gif');
    background-repeat: no-repeat;
    background-position: center center;
}
1 голос
/ 04 сентября 2011

Посмотрите на обработчики событий ajaxStart() и ajaxStop() в jQuery.Вы можете использовать их, чтобы показать и скрыть слой с gif-анимацией.

http://api.jquery.com/ajaxStart/

http://api.jquery.com/ajaxStop/

...