我有2种不同类型的用户
当我登录时,我将我的页面提交到帐户/登录
取决于我重定向到的用户类型(使用RedirectToAction)
教师/索引 要么 学生/索引。
动作学生/索引是一个简单的动作,并立即返回其视图。
但是动作教师/索引具有巨大的数据访问权限,视图将在一分钟后返回。 (我将优化数据访问不要担心留言,因为它不是这篇文章的一部分)
在一分钟内,我想在浏览器中显示“加载”消息。
我该怎么做?
我有Jquery和MVC2
答案 0 :(得分:3)
一种可能性是将这个动作分成两个:一个将呈现一个简单的视图,一个将进行重组并呈现一个部分。因此,当教师登录时,您将重定向到第一个操作并呈现包含微调器的简单HTML视图。然后,您将触发对第二个操作的AJAX调用以进行数据访问,将部分注入DOM并隐藏进度。
所以你可以把这样的东西放到视图中:
<img id="progress" src="progress.gif" alt="" />
<div id="result" data-url="<%= Url.Action("TeacherData") %>"></div>
然后在单独的js文件中触发AJAX调用:
$(function() {
$.ajax({
url: $('#result').data('url'),
type: 'POST',
complete: function() {
$('#progress').hide();
},
success: function(result) {
$('#result').html(result);
}
error: function() {
alert('oops');
}
});
});
并在您的控制器上:
public ActionResult Teacher()
{
return View();
}
[HttpPost]
public ActionResult TeacherData()
{
var model = ... do the heavy data access
return PartialView(model);
}