如何重定向到 $.AJAX 上的视图完成 - asp.net mvc 3

Posted

技术标签:

【中文标题】如何重定向到 $.AJAX 上的视图完成 - asp.net mvc 3【英文标题】:how to redirect to a view on $.AJAX complete - asp.net mvc 3 【发布时间】:2011-11-10 02:29:34 【问题描述】:

好的..我想在使用 $.AJAX 进行验证检查后将用户重定向到 peritcular 视图...我该怎么做? ..请帮助...

这是我的 $.AJAX 代码...例如:我希望用户重定向到“/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");
            
        

我如何将返回的结果从这个视图传递到另一个视图.. 在这个例子中,如果用户登录我想在重定向页面上显示他的电子邮件 ID,比如“/home/Movies”

提前谢谢

【问题讨论】:

您应该提出一个新问题,而不是编辑这个问题。根据当前的措辞,答案不再有意义。 我同意。根据当前的措辞,答案不再有意义。 【参考方案1】:

在 ajax 请求之前显示您的加载图像,并隐藏在 successerror 处理程序上。

&lt;div class="loading"&gt;Loading...&lt;/div&gt; 添加到您的标记中

$('.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);
    
);

【讨论】:

【参考方案2】:

看看 jQuery 中的 ajaxStart()ajaxStop() 事件处理程序。您可以使用这些来显示和隐藏带有 gif 动画的图层。

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

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

【讨论】:

【参考方案3】:

使用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;

【讨论】:

以上是关于如何重定向到 $.AJAX 上的视图完成 - asp.net mvc 3的主要内容,如果未能解决你的问题,请参考以下文章

Django:如何通过 AJAX 将 PKID 列表传递给下一个视图,然后重定向

Ajax 表单提交后如何将用户重定向到另一个页面?

Ajax表单提交后如何将用户重定向到另一个页面

停用的用户重定向到从 ajax 请求登录

在 PayPal 按钮重定向之前完成 AJAX 调用

drupal 在点击时查看自动完成重定向,这可能吗?