ASP.Net MVC的加载页面

Sim*_*ton 1 asp.net-mvc

我正在使用ASP.Net MVC来创建一个网站,它需要做一些处理(5-10秒)才能将视图返回给用户.我不想让用户盯着冰川进度条,而是想展示某种"请等待/我们会马上回来"动画的GIF让他们感兴趣.

有谁知道实现这个目标的好方法?

(我找到了这个答案,但它不是我需要的,它在返回视图后使用jQuery来获取数据.我想在等待视图出现时显示"Please Wait")

谢谢

tva*_*son 5

我认为您引用的解决方案对您有用.您只需要使用"请等待消息"立即返回初始控制器操作,然后让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 次

最近记录:

16 年,12 月 前