【问题标题】:how to redirect to a view on $.AJAX complete - asp.net mvc 3如何重定向到 $.AJAX 上的视图完成 - 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”

提前谢谢

【问题讨论】:

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

标签: asp.net-mvc asp.net-mvc-3 jquery asp.net-ajax


【解决方案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;
      }
      

      【讨论】:

        猜你喜欢
        • 2019-05-10
        • 1970-01-01
        • 2010-10-07
        • 1970-01-01
        • 2021-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多