如何重定向到 $.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 请求之前显示您的加载图像,并隐藏在 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);
);
【讨论】:
【参考方案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的主要内容,如果未能解决你的问题,请参考以下文章