我正在使用ASP.Net MVC来创建一个网站,它需要做一些处理(5-10秒)才能将视图返回给用户.我不想让用户盯着冰川进度条,而是想展示某种"请等待/我们会马上回来"动画的GIF让他们感兴趣.
有谁知道实现这个目标的好方法?
(我找到了这个答案,但它不是我需要的,它在返回视图后使用jQuery来获取数据.我想在等待视图出现时显示"Please Wait")
谢谢
我认为您引用的解决方案对您有用.您只需要使用"请等待消息"立即返回初始控制器操作,然后让AJAX调用根据您的处理实际检索内容.如果请求确实需要5-10秒,您可能还需要调整AJAX请求的超时值,以便能够完成.我不知道默认超时是什么,但可能小于你需要的.
编辑示例:
查看代码:
<script type="text/javascript">
$(document).ready( function() {
$.ajax({
type: "POST",
url: '<$= Url.Action("GetSlowData","Controller") %>',
data: 'id=<%= ViewData["modelID"] %>',
timeout: 15000, // wait upto 15 secs
success: function(content){
$("#container").html(content);
}
});
});
</script>
...
<div id="#container">
Please wait while I retrieve the data.
</div>
Run Code Online (Sandbox Code Playgroud)
调节器
public ActionResult ViewMyData( int id )
{
ViewData["modelID"] = id;
return View();
}
[AcceptVerbs( HttpVerbs.Post )]
public ActionResult GetSlowData( int id )
{
var model = ... do what you need to do to get the model...
return PartialView(model);
}
Run Code Online (Sandbox Code Playgroud)
您还需要一个局部视图(ViewUserControl)来获取模型并呈现模型的视图.请注意,这不完整 - 您需要添加错误处理,您可能需要考虑如果未启用javascript会发生什么,...
| 归档时间: |
|
| 查看次数: |
6696 次 |
| 最近记录: |